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.
Where it lands in Jayverse
- Bridge: document whether the relayer committee can reshare. The Anvil↔Sepolia lock-and-mint relayer set is a committee; write down whether adding or removing a relayer preserves the registered bridge public key, or admit plainly that "rotate the operator set" currently means "migrate the bridge."
- Auditor: require a published ceremony transcript for any threshold setup. Any multisig or threshold component (the bridge relayer set, a future DVT-style validator group) should publish its ceremony transcript so the threshold is a verifiable fact, not an assertion nobody can check.
- Wallet: test the three membership events before trusting recovery. If wallet or bridge recovery ever uses a threshold scheme, run this page's three-event test on devnet first — operator leaves, operator joins, share lost — and check whether "recover a lost share" is distinguishable from "let t colluding operators hand a share to anyone."
Key expressions
| Expression | 뜻 · 쓰이는 자리 |
|---|---|
| budget for | (일이 생길 것을) 미리 대비하다, 예산·계획에 넣다 · "the one nobody budgets for" |
| off-the-shelf | 기성품의, 바로 갖다 쓸 수 있는 · "run an off-the-shelf DKG at n=7" |
| single point of compromise | 단일 침해 지점(거기 하나만 뚫리면 전체가 뚫림) · "no single point of compromise" |
| nailed down | 이미 못박혀 고정된, 다른 데서 확정되어 버린 · "the part nailed down somewhere else" |
| baked into | (이미) 내장되어 버린, 고정되어 들어간 · "a key ID baked into an already-broadcast encrypted transaction" |
| collude | 공모하다 · "t colluding participants hand a share to anyone" |
| veto | 거부권을 행사하다 · "can the incumbents veto?" |
| quietly mean | 은근슬쩍 ~라는 뜻이 되어버리다 · "quietly means migrate everything that ever referenced" |
| correlated axes | 서로 연동되어 독립적이지 않은 위험 축들 · "the correlated axes are concrete" |
| an assertion rather than a verifiable fact | 검증 불가능한 주장에 불과함 · "the threshold is an assertion rather than a verifiable fact" |
| DKG | 분산 키 생성(Distributed Key Generation) · 개인키를 한 곳에 모으지 않고 여러 참여자가 공동으로 키쌍을 만드는 프로토콜. "Distributed key generation is written up as a one-time event" |
| DVT | 분산 검증자 기술(Distributed Validator Technology) · 검증자 키를 여러 운영자가 나눠 갖는, DKG의 대표적 활용 사례. "DVT validator keys (dvt)" |
| MPC | 다자간 계산(Multi-Party Computation) · 키를 재구성하지 않고 여러 참여자가 공동으로 서명·복호화하는 기법. "MPC custody (the custodian in fisheries-receivable-rail)" |
| BLS | BLS 서명 방식(Boneh–Lynn–Shacham) · 여러 서명을 하나로 모을 수 있는 방식, DKG의 한 변형으로 언급된다. "or a BLS variant" |
| GJKR | 대표적인 DKG 프로토콜의 이름(Gennaro–Jarecki–Krawczyk–Rabin) · 복잡성 회피 라운드가 있는 방식으로 대비된다. "GJKR, FROST for Schnorr thresholds" |
| FROST | 슈노어 임계서명을 위한 DKG·서명 프로토콜 · "FROST for Schnorr thresholds" |
| MEV | 최대 추출 가능 가치(Maximal Extractable Value) · 블록 생성자가 거래 순서를 조작해 얻는 이익, 멤풀 보안 문맥에서 언급된다. "restores mempool-stage MEV" |