Traditional cryptographic systems rely on a single party for cryptographic operations, introducing a single point of failure that compromises the entire system if breached. Threshold cryptography mitigates this risk by distributing trust among multiple parties, requiring only a subset (threshold) to collaboratively perform cryptographic operations.
This series of posts focuses on widely adopted threshold signature schemes, their implementations, and security considerations relevant to blockchain. It aims to bridge the gap between developers, cryptography enthusiasts, and academic literature by presenting technically dense content in an accessible format.
This first post introduces Distributed Key Generation (DKG), which allows multiple participants to jointly generate a secret key without ever reconstructing the full secret key, enhancing security and fault tolerance. It is fundamental to decentralized consensus, secure multiparty computation, and threshold signatures.
We will begin with the well-known Shamir’s Secret Sharing.
Secret Sharing Scheme
Shamir’s Secret Sharing
Shamir’s Secret Sharing (SSS) [1] is a threshold key generation scheme for dividing a secret into shares to participants such that any of them or more can reconstruct the secret, but a group of participants reveal no information about the secret key. The scheme leverages the Lagrange polynomial interpolation over a large finite field .
To create the share , a dealer selects a random polynomial of degree over the finite field (i.e., all coefficients are in \mathbb{Z}_q$), then $f(0)=s is the secret. Each share is computed as point for , and distributed to the participants.
When or more shares are collected from the n participants, Lagrange interpolation is used to reconstruct the polynomial (for simplicity, the formula is given for the first shares), thereby recovering the secret s at . The security of SSS relies on the mathematical fact that a degree-$t$ polynomial is fully determined only when or more distinct points on the graph of the polynomial are known.
For example, a 3 out of 5 configuration (an instance of out of n$) produces a degree-2 polynomial illustrated in the following diagram. The share coordinates are $x=1,2,3,4,5 and its corresponding values are the secret shares, then any 3 points are sufficient to reconstruct the degree-2 polynomial passing through the points, while 2 points are insufficient. In the diagram, the 3 points are located at 1, 2, and 4, and the y-axis shows the secret at .
Note that the share coordinates are chosen as integers, for convenience, and any sequence from (except for 0) can be utilized. Successful execution of SSS requires all share coordinates mod to be unique and non-zero, as a zero coordinate would directly expose the secret.

A limitation of Shamir’s Secret Sharing is the lack of share verifiability, which means the participant cannot verify whether its received share is correct. Feldman’s Verifiable Secret Sharing (VSS) [2] addresses this by enabling public verification of shares to detect invalid shares.
Feldman’s Verifiable Secret Sharing
Feldman’s VSS scheme operates over a large finite field with a generator of prime order on an elliptic curve. The dealer constructs a random degree-$t$ polynomial , where the secret is . Each participant ($i=1,2,\cdots,n$) receives a share as in Shamir’s Secret Sharing.
To enable share verification, the dealer also publishes commitments to the polynomial coefficients with for , where denotes the scalar multiplication. In particular, is the public key corresponding to the secret key .
Participant can verify its share by checking whether , which is basically the scalar multiplication with generator on both sides of , thereby allowing any participant to detect if its received share is invalid without revealing the secret.
To prevent a dealer from sending inconsistent commitments, participants could broadcast their received commitments and verify that all views are identical.
Distributed Key Generation
Leveraging Shamir's Secret Sharing and Feldman's Verifiable Secret Sharing, we will now introduce key distribution with a trusted dealer and distributed key generation.
Key Distribution with A Trusted Dealer
Key distribution with a trusted dealer is a common setup in threshold cryptographic schemes where a dealer is responsible for generating and distributing secret key shares among participants. This is particularly useful to import a preexisting secret key and distribute it among participants.
Broadcast Shares and Commitments
The dealer begins with a secret key (preexisting or newly generated) and constructs a random degree- polynomial with . Using Shamir’s Secret Sharing, the dealer computes for and privately sends the i$-th share $s_i to participant .
To enable public key reconstruction, the dealer publishes the public key and optionally uses Feldman’s VSS to provide commitments with , for verifiability of the distributed shares. Similarly, to prevent a dealer from sending inconsistent commitments, participants broadcast their received commitments and verify that all views are identical.
Verify Shares with Commitments
Upon receiving the share , each participant verifies it by checking .
If the public key is available, then it can be verified with . This ensures that any subset of at least participants can jointly reconstruct the secret or perform threshold cryptographic operations, while fewer than participants gains no information about the secret except that its public key is revealed.
Pedersen’s Distributed Key Generation
Centralized key generation with a trusted dealer poses a security risk, even if the key is later deleted. For generation of fresh secrets, this is mitigated using Pedersen’s Distributed Key Generation (DKG) [3].
Pedersen’s DKG is effectively a parallel execution of Feldman’s VSS, where each participant independently acts as a dealer for a random secret. The final secret key is the sum of all shared secrets, ensuring no single party learns the full secret key.
The protocol executes in 2 rounds among participants, incorporating additional security measures.

Round 1
- Each participant samples a random degree-$tpolynomial $f_i(x) = a_{i,0} + a_{i, 1} \cdot x+ \cdots + a_{i, t} \cdot x^t over a large prime field , where is the order of a generator on the underlying elliptic curve.
- computes the commitment where for .
- To prove the knowledge of its secret , creates a Schnorr proof where with uniformly generated from and , such that is the challenge, possibly including some contexts to prevent replay attacks.
- Each participant then broadcasts the Schnorr proof and commitment to other participants .
Round 2
- Upon receiving the Schnorr proof and commitment from another participant , each participant verifies the Schnorr proof with , where . If the verification fails, then aborts immediately.
- Each sends the secret share to another participant via p2p, then deletes and all sent shares, retaining only .
- Each verifies all the received shares from other via the check for , .
- Finally, aggregates all received secret shares to obtain its final share .
The protocol is fully symmetric across all participants; any participant aborts immediately upon verification failure.
Conclusion
This post reviewed common distributed key generation techniques, including Shamir’s Secret Sharing, Feldman’s Verifiable Secret Sharing, and Pedersen’s Distributed Key Generation.
The pros and cons of key distribution with a trusted dealer versus distributed key generation are summarized below, with respect to centralization, protocol complexity, and secret key usage.
| Methods | Centralization | Complexity | Secret Key Usage |
|---|---|---|---|
| Key distribution with a trusted dealer | Yes | 1-round communication | Distribute a preexisting secret key or generate a new one |
| Pedersen’s Distributed key generation | No | 2-round communication | Generate a new secret key |
The next post in the series of threshold cryptography will analyze the FROST protocol [4] and examine challenges in its decentralized implementation.
References
- Adi Shamir, 1979: How to share a secret.
- Paul Feldman, 1987: A practical scheme for non-interactive verifiable secret sharing.
- Torben Pedersen, 1991: A threshold cryptosystem without a trusted party.
- Chelsea Komlo, Ian Goldberg, 2020: FROST: Flexible Round-Optimized Schnorr Threshold Signatures



