dss

package
v1.5.0-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2024 License: Apache-2.0 Imports: 15 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 GenDistSecret added in v1.0.3

func GenDistSecret(suite dkg.Suite, nbParticipants int, partSec []kyber.Scalar, partPubs []kyber.Point) []*dkg.DistKeyShare

func GenPair added in v1.0.3

func GenPair(suite dkg.Suite) (kyber.Scalar, kyber.Point)

func NewInputDecided added in v1.0.3

func NewInputDecided(decidedIndexProposals map[gpa.NodeID][]int, messageToSign []byte) gpa.Input

func NewInputStart added in v1.0.3

func NewInputStart() gpa.Input

Types

type DSS

type DSS interface {
	AsGPA() gpa.GPA
}

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 tcrypto.SecretShare,
	log *logger.Logger,
) DSS

type Output

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

Jump to

Keyboard shortcuts

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