Documentation
¶
Overview ¶
JVSS provides a threshold signing scheme based on Shamir's joint verifiable secret sharing algorithm and Schnorr signatures. The protocl runs in two phases. During the protocol setup a long-term shared secret is establised between all participants. Afterwards, any of the members can request a signature, which triggers the creation of another, short-term shared secret. Each member then sends its partial signature to the requester which finally puts everything together to get the final Schnorr signature. To verify a given Schnorr signature a member still has to be able to access the long-term shared secret from which that particular signature was created.
Index ¶
- func NewJVSS(node *sda.TreeNodeInstance) (sda.ProtocolInstance, error)
- func NewSimulation(config string) (sda.Simulation, error)
- type JVSS
- type SID
- type SecConfMsg
- type SecInitMsg
- type Secret
- type SigReqMsg
- type SigRespMsg
- type Simulation
- type WSecConfMsg
- type WSecInitMsg
- type WSigReqMsg
- type WSigRespMsg
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewJVSS ¶
func NewJVSS(node *sda.TreeNodeInstance) (sda.ProtocolInstance, error)
NewJVSS creates a new JVSS protocol instance and returns it.
func NewSimulation ¶
func NewSimulation(config string) (sda.Simulation, error)
NewSimulation creates a JVSS simulation
Types ¶
type JVSS ¶
type JVSS struct { *sda.TreeNodeInstance // The SDA TreeNode // contains filtered or unexported fields }
JVSS is the main protocol struct and implements the sda.ProtocolInstance interface.
func (*JVSS) Sign ¶
func (jv *JVSS) Sign(msg []byte) (*poly.SchnorrSig, error)
Sign starts a new signing request amongst the JVSS group and returns a Schnorr signature on success.
type SecConfMsg ¶
SecConfMsg are used to confirm to other peers that we have finished setting up the shared secret.
type SecInitMsg ¶
SecInitMsg are used to initialise new shared secrets both long- and short-term.
type Secret ¶
type Secret struct {
// contains filtered or unexported fields
}
Secret contains all information for long- and short-term shared secrets.
type SigRespMsg ¶
type SigRespMsg struct { Src int SID SID Sig *poly.SchnorrPartialSig }
SigRespMsg are used to reply to signing requests.
type Simulation ¶
type Simulation struct { sda.SimulationBFTree Verify bool }
Simulation implements a JVSS simulation
func (*Simulation) Run ¶
func (jvs *Simulation) Run(config *sda.SimulationConfig) error
Run initiates a JVSS simulation
func (*Simulation) Setup ¶
func (jvs *Simulation) Setup(dir string, hosts []string) (*sda.SimulationConfig, error)
Setup configures a JVSS simulation
type WSecConfMsg ¶
type WSecConfMsg struct { *sda.TreeNode SecConfMsg }
WSecConfMsg is a SDA-wrapper around SecConfMsg.
type WSecInitMsg ¶
type WSecInitMsg struct { *sda.TreeNode SecInitMsg }
WSecInitMsg is a SDA-wrapper around SecInitMsg.
type WSigReqMsg ¶
WSigReqMsg is a SDA-wrapper around SigReqMsg.
type WSigRespMsg ¶
type WSigRespMsg struct { *sda.TreeNode SigRespMsg }
WSigRespMsg is a SDA-wrapper around SigRespMsg.