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
- encryption
std
Encryption types and utilities used to secure DKG messages. - frost
std
The distributed key generation protocol described in the FROST paper. - MuSig-style key aggregation.
- promote
std
Promote keys between ciphersuites. - tests
tests
Tests for application-provided curves and algorithms.
Structs
- The ID of a participant, defined as a non-zero u16.
- 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.
- Threshold keys usable for signing.
- Parameters for a multisig.
- View of keys, interpolated and offset for usage.
Enums
- Various errors possible during key generation.
Functions
- lagrange
std
Calculate the lagrange coefficient for a signing set.