Crate dkg

Source
Expand description

§Distributed Key Generation

A collection of implementations of various distributed key generation protocols.

All included protocols resolve into the provided Threshold types, intended to enable their modularity. Additional utilities around these types, such as promotion from one generator to another, are also provided.

Currently, the only included protocol is the two-round protocol from the FROST paper.

This library was audited by Cypher Stack in March 2023, culminating in commit 669d2dbffc1dafb82a09d9419ea182667115df06. Any subsequent changes have not undergone auditing.

Re-exports§

pub use super::*;

Modules§

encryptionstd
Encryption types and utilities used to secure DKG messages.
froststd
The distributed key generation protocol described in the FROST paper.
musig
MuSig-style key aggregation.
promotestd
Promote keys between ciphersuites.
teststests
Tests for application-provided curves and algorithms.

Structs§

Participant
The ID of a participant, defined as a non-zero u16.
ThresholdCorestd
Keys and verification shares generated by a DKG. Called core as they’re expected to be wrapped into an Arc before usage in various operations.
ThresholdKeysstd
Threshold keys usable for signing.
ThresholdParamsstd
Parameters for a multisig.
ThresholdViewstd
View of keys, interpolated and offset for usage.

Enums§

DkgError
Various errors possible during key generation.

Functions§

lagrangestd
Calculate the lagrange coefficient for a signing set.