Expand description
FROST threshold signature scheme over ed25519 (draft-irtf-cfrg-frost).
A real cryptographic implementation of FROST, registered with the
confium_tc link-time scheme registry under two names:
-
sign::SCHEME_NAME="FROST-ed25519"— threshold signing. Produces a standard RFC-8032 ed25519 signature(R, z)verifiable by any conformant verifier (e.g.ed25519-dalek). -
dkg::SCHEME_NAME="FROST-ed25519-dkg"— distributed key generation via Pedersen / Feldman VSS. Produces a per-party share plus the aggregate public key, encoded in the session’sconfium_tc::Session::resultas a length-prefixed blob (pubkey || share). Pass that blob directly into a signing session’sconfium_tc::SessionParams::local_share.
§Protocol at a glance
§DKG (2 rounds)
- Each party generates a degree-
T-1VSS polynomial, broadcasts its Feldman commitment list, and directs per-peer share fragments. - Each party verifies the fragments, aggregates them, and sums the commitment-list constant terms to get the aggregate public key.
§Signing (3 rounds)
- Each party broadcasts nonce commitments
(D_i, E_i). - Each party receives all commitments, derives binding factors, the
group commitment
R, the challengec = SHA-512(R ‖ A ‖ M), computesz_i = d_i + ρ_i·e_i + λ_i·s_i·c, and broadcasts it. - Each party aggregates
z = Σ z_i, verifiesz·B == R + c·A, and emits(R, z).
§Status / deviations
See the module-level notes in dkg and sign for the full list
of deviations from the textbook FROST protocol. The headline gaps:
- No DKG complaint round. Byzantine VSS senders are silently excluded; honest parties still converge on the same key.
- Nonce generation uses
OsRng, not the spec’s deterministic H3 derivation. - Per-party share-response verification is partial. The aggregate signature is always verified; identifying which peer was byzantine requires distributing per-party public shares during DKG, which is future work.
Re-exports§
pub use dkg::FrostEd25519Dkg;pub use dkg::parse_output as parse_dkg_output;pub use sign::FrostEd25519;
Modules§
- dkg
- Distributed key generation for FROST-ed25519.
- error
- Error type for the FROST-ed25519 scheme plugin.
- group
- Group primitives for FROST over ed25519.
- inprocess
- In-process synchronous driver for FROST-ed25519 DKG and signing.
- polynomial
- Polynomial helpers for verifiable secret sharing.
- sign
- FROST threshold signing over ed25519.
- transcript
- Fiat-Shamir transcript for FROST-ed25519.
Constants§
- DKG_
SCHEME - Convenience: the canonical name of the DKG scheme, as a
&'static str. - SIGN_
SCHEME - Convenience: the canonical name of the signing scheme, as a
&'static str.