frost-dkg 0.6.0

An implementation of the FROST Distributed Key Generation protocol
Documentation

FROST DKG

This crate implements the FROST Distributed Key Generation (DKG) protocol described in the FROST paper.

The protocol is a variant of Pedersen verifiable secret sharing that also requires each participant to prove knowledge of its secret with a Schnorr proof, mitigating rogue-key attacks.

The crate can publicly verify a DKG result using only the round 1 broadcast information and the DKG parameters.

Supported groups

All supported group features are enabled by default:

  • BLS12-381 through bls12_381_plus or blstrs_plus
  • Curve25519 through curve25519-dalek
  • Ed448 through ed448
  • secp256k1 through k256
  • NIST P-256 through p256
  • NIST P-384 through p384

Default features can be disabled to select only the required group backends.

Security notes

This implementation has never been independently audited. Use it at your own risk.

Serialized participant state contains plaintext secret key material. Store or transport it only with authenticated encryption or an equivalently protected mechanism, and do not deserialize unauthenticated participant state.

Minimum supported Rust version

This crate requires Rust 1.87 or newer.

The minimum supported Rust version may change in a future minor release.

License

Licensed under either of the following, at your option:

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this work, as defined in the Apache-2.0 license, is dual-licensed as described above, without any additional terms or conditions.