dss

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2022 License: Apache-2.0, BSD-2-Clause Imports: 11 Imported by: 0

Documentation

Overview

Run a NonceDKG and sign the supplied hash.

This is a simplified implementation. Later the DKG part can be run in advance, while waiting for transactions.

The general workflow is the following:

  1. Start it upon activation of a step (last stateOutput is approved).
  2. Exchange the underlying messages until: 2.1. ACSS Intermediate output is received.
  3. Then wait for the ACS and then the VM to complete: 3.1. pass the ACS result to the nonce-dkg (to complete the nonces). 3.2. pass the VM output as a message to sign (its hash).
  4. Exchange messages until the signature is produced.
  5. Output the signature.

TODO: Make sure no two signatures are ever produced by the nonce-dkg for the same

base TX. That would reveal the permanent private key of the committee.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewMsgDecided

func NewMsgDecided(me gpa.NodeID, decidedIndexProposals map[gpa.NodeID][]int, messageToSign []byte) gpa.Message

Types

type DSS

type DSS interface {
	AsGPA() gpa.GPA
	NewMsgDecided(decidedIndexProposals map[gpa.NodeID][]int, messageToSign []byte) gpa.Message
}

func New

func New(
	suite suites.Suite,
	nodeIDs []gpa.NodeID,
	nodePKs map[gpa.NodeID]kyber.Point,
	f int,
	me gpa.NodeID,
	mySK kyber.Scalar,
	longTermSecretShare dss.DistKeyShare,
	log *logger.Logger,
) DSS

type Output

type Output struct {
	ProposedIndexes []int  // Intermediate output.
	Signature       []byte // Final output.
}

type SecretShare

type SecretShare struct {
	// contains filtered or unexported fields
}

func NewSecretShare

func NewSecretShare(priShare *share.PriShare, commits []kyber.Point) *SecretShare

func (*SecretShare) Commitments

func (s *SecretShare) Commitments() []kyber.Point

Commitments returns the coefficients of the public polynomial.

func (*SecretShare) PriShare

func (s *SecretShare) PriShare() *share.PriShare

PriShare returns the private share.

Directories

Path Synopsis
package node is a front-end to the Distributed Schnorr Signature subsystem.
package node is a front-end to the Distributed Schnorr Signature subsystem.

Jump to

Keyboard shortcuts

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