Why
Distributed key generation is the protocol by which n parties jointly produce one keypair such that the private key is never assembled anywhere, and any t of them can sign or decrypt with it. It is the primitive underneath four things this catalogue already has cards for: DVT validator keys (dvt), the keyper committees in threshold-encrypted mempools (encrypted-mempool), MPC custody (the custodian in fisheries-receivable-rail), and randomness beacons.
Every write-up states the same property — t-of-n, no single point of compromise — and it is true. What almost none of them state is what happens after the ceremony. A DKG is described as an event; every real deployment is a committee, and committees change. An operator leaves. A new one joins. One loses its share to a dead disk. Each of those needs a second ceremony — resharing — that has to be at least as trustworthy as the first, and it is the part that gets skipped in the documentation and, suspiciously often, in the deployment.
That matters more than it sounds, because of one property worth stating precisely: resharing can preserve the group's public key. Shares are re-randomised, membership changes, the public key stays. And the public key is usually the part nailed down somewhere else — a validator pubkey registered on the beacon chain, a deposit address a customer saved, a key ID baked into an already-broadcast encrypted transaction. If a deployment can reshare, changing the operator set is an operation. If it cannot, "change the operator set" quietly means "migrate everything that ever referenced the old key."
How it works
What a DKG actually produces
| Output | Who holds it | Note |
|---|---|---|
| The private key | Nobody, ever | Exists only implicitly, as the interpolation of shares |
| The public key | Everyone; published | This is what other systems bind to |
| Share i | Participant i | Useless alone below the threshold |
| The transcript | Should be public | The evidence that the key was generated as claimed |
The last row deserves the hardest look. A threshold claim is only as good as the ability of an outsider to check that the ceremony really ran with the claimed participants and the claimed threshold.
The three membership events
| Event | What has to happen | The question that decides it |
|---|---|---|
| An operator leaves | Reshare to n−1, or replace in place | Does the group public key survive? |
| An operator joins | Reshare to n+1 | Who authorises it, and can the incumbents veto? |
| A share is lost | Recover from ≥ t others, or reshare | Is recovery distinguishable from theft? |
That last question is the sharp one. A recovery procedure that lets t participants reconstruct a share for a member who lost theirs is, structurally, also a procedure that lets t colluding participants hand a share to anyone. Whatever separates the two is policy sitting outside the cryptography — which is the same boundary the aml-compliance card is about.
The measurement, and it is small
Run a real DKG locally — n = 7, t = 5, using an existing library rather than hand-rolling one — then measure the operations, not the cryptography:
- Rounds and wall-clock for the initial ceremony.
- Remove one participant. Does the group public key change?
- Add one. How many rounds, and how much of the group must be online at once?
- Kill a participant mid-ceremony. Does the protocol abort, restart, or exclude it?
- Have an outsider verify the transcript using public data only.
Output is one table nobody publishes and every operator needs:
| Event | Rounds | Online quorum required | Downtime | Public key preserved |
|---|
Where the n stops being n
Same shape as stake-concentration and aqua-shared-liquidity: a set that looks like n independent units while the real unit of independence is smaller. For a key committee the correlated axes are concrete — same cloud region, same client implementation, same jurisdiction, one operator running several nominally separate nodes.
The threshold t is arithmetic. The independence of the n is an empirical claim, and it is the one nobody measures. encrypted-mempool hit this from the other side — fewer than k honest keypers restores mempool-stage MEV — and third-party-blast-radius asks it about committee capture.
What breaks in each card if resharing turns out to be impossible
| Card | The key that is nailed down elsewhere | Consequence |
|---|---|---|
dvt |
Validator pubkey registered on the beacon chain | Changing operators means exiting and re-depositing |
encrypted-mempool |
Key provider ID and key ID, in the plaintext envelope | A committee change invalidates references already broadcast |
fisheries-receivable-rail |
The custody address a customer saved | "Rotate the operator set" becomes "move the assets" |
Open questions
- Does anyone publish the ceremony transcript? If not, the threshold is an assertion rather than a verifiable fact, and every downstream card is trusting a claim it cannot check.
- Which DKG is actually deployed — Pedersen with a complaint round (biasable, and one malicious participant can force a restart), GJKR, FROST for Schnorr thresholds, or a BLS variant. The choice determines abort behaviour, and abort behaviour is the operational property.
- Has any live deployment actually reshared in production, as opposed to documenting that it could? That single data point is worth more than any amount of spec reading, and it is the first thing to go looking for.