frost

package
v0.0.0-...-35ce414 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

README

FROST: Flexible Round-Optimized Schnorr Threshold Signatures

This package is an implementation of the DKG part of FROST: Flexible Round-Optimized Schnorr Threshold Signatures

Documentation

Overview

Package frost is an implementation of the DKG part of https://eprint.iacr.org/2020/852.pdf

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DkgParticipant

type DkgParticipant struct {
	Curve *curves.Curve

	Id              uint32
	SkShare         curves.Scalar
	VerificationKey curves.Point
	VkShare         curves.Point
	// contains filtered or unexported fields
}

func NewDkgParticipant

func NewDkgParticipant(id, threshold uint32, ctx string, curve *curves.Curve, otherParticipants ...uint32) (*DkgParticipant, error)

func (*DkgParticipant) Round1

func (dp *DkgParticipant) Round1(secret []byte) (*Round1Bcast, Round1P2PSend, error)

Round1 implements dkg round 1 of FROST

func (*DkgParticipant) Round2

func (dp *DkgParticipant) Round2(bcast map[uint32]*Round1Bcast, p2psend map[uint32]*sharing.ShamirShare) (*Round2Bcast, error)

Round2 implements dkg round 2 of FROST

type Round1Bcast

type Round1Bcast struct {
	Verifiers *sharing.FeldmanVerifier
	Wi, Ci    curves.Scalar
}

Round1Bcast are values that are broadcast to all other participants after round1 completes

type Round1P2PSend

type Round1P2PSend = map[uint32]*sharing.ShamirShare

Round1P2PSend are values that are P2PSend to all other participants after round1 completes

type Round1Result

type Round1Result struct {
	Broadcast *Round1Bcast
	P2P       *sharing.ShamirShare
}

func (*Round1Result) Decode

func (result *Round1Result) Decode(input []byte) error

func (*Round1Result) Encode

func (result *Round1Result) Encode() ([]byte, error)

type Round2Bcast

type Round2Bcast struct {
	VerificationKey curves.Point
	VkShare         curves.Point
}

Round2Bcast are values that are broadcast to all other participants after round2 completes

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL