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

Modules

  • Encryption types and utilities used to secure DKG messages.
  • The distributed key generation protocol described in the FROST paper.
  • MuSig-style key aggregation.
  • Promote keys between ciphersuites.
  • teststests
    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

  • Calculate the lagrange coefficient for a signing set.