Skip to content

Commit 6661542

Browse files
committed
[cryptography] Clarify DKG differences
Removes a blurb in dkg about how asynchrony is future work, referencing the current golden impl instead, and adds top level docs about the two DKG protocols.
1 parent edc5cce commit 6661542

2 files changed

Lines changed: 18 additions & 10 deletions

File tree

cryptography/src/bls12381/dkg.rs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -157,17 +157,12 @@
157157
//! honest players and another block `B_2` to `f + 1` other honest players. Normally, it would only be possible to create one quorum of `2f + 1` (for `B_2`),
158158
//! however, with `h` other shares revealed another quorum of `2f + h` can be formed for `B_1`.
159159
//!
160-
//! #### Future Work: Dropping the Synchrony Assumption for `f` Bounded Reveals?
160+
//! #### DKG without a synchrony assumption
161161
//!
162-
//! It is possible to design a DKG/Resharing scheme that maintains a shared secret where at least `f + 1` honest players
163-
//! must participate to recover the shared secret that doesn't require a synchrony assumption (`2f + 1` threshold
164-
//! where at most `f` players are Byzantine). However, known constructions that satisfy this requirement require both
165-
//! broadcasting encrypted dealings publicly and employing Zero-Knowledge Proofs (ZKPs) to attest that encrypted dealings
166-
//! were generated correctly ([Groth21](https://eprint.iacr.org/2021/339), [Kate23](https://eprint.iacr.org/2023/451)).
167-
//!
168-
//! As of January 2025, these constructions are still considered novel (2-3 years in production), require stronger
169-
//! cryptographic assumptions, don't scale to hundreds of participants (unless dealers have powerful hardware), and provide
170-
//! observers the opportunity to brute force decrypt shares (even if honest players are online).
162+
//! Some protocols achieve one round without synchrony assumptions, by combining
163+
//! encryption and ZK Proofs. We have an implementation of one such protocol,
164+
//! [Golden](https://eprint.iacr.org/2025/1924), in [`crate::bls12381::golden_dkg`].
165+
//! At the moment, that implementation is still experimental.
171166
//!
172167
//! ## Handling Complaints
173168
//!

cryptography/src/bls12381/mod.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,19 @@
55
//! This crate has the following features:
66
//!
77
//! - `portable`: Enables `portable` feature on `blst` (<https://github.com/supranational/blst?tab=readme-ov-file#platform-and-language-compatibility>).
8+
//!
9+
//! # DKG Protocols
10+
//!
11+
//! This module exports two DKG protocols:
12+
//!
13+
//! - [`dkg`], a two-round synchronous protocol,
14+
//! - [`golden_dkg`], a one-round asynchronous protocol (currently in ALPHA).
15+
//!
16+
//! The tradeoff is that the latter is more complicated, and more computationally
17+
//! expensive. However, it is less reliant on assumptions about the number of corruptions,
18+
//! and the single round can be very useful, operationally. At the moment,
19+
//! the status of our Golden implementation is experimental, so we recommend
20+
//! using [`dkg`] for now.
821
922
pub mod certificate;
1023
#[cfg(feature = "std")]

0 commit comments

Comments
 (0)