Skip to content

Commit 405cede

Browse files
committed
Review feedback
1 parent d6ffb57 commit 405cede

3 files changed

Lines changed: 32 additions & 34 deletions

File tree

docs/blogs/golden.html

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
<title>commonware > Your Golden Ticket to a Better DKG</title>
1212
<meta name="description" content="We’ve completed an initial
1313
implementation of the Golden protocol, which lets you perform a DKG in
14-
just a single round. Going from two rounds to just one is a huge
15-
improvement in simplicity and performance.">
14+
just a single round.">
1615
<meta name="author" content="Lucas Meier">
1716
<meta name="keywords" content="commonware, open source, common goods, software, internet, ownership, trust, blockchain, decentralization, crypto">
1817

@@ -24,23 +23,21 @@
2423
DKG" />
2524
<meta property="og:description" content="We’ve completed an initial
2625
implementation of the Golden protocol, which lets you perform a DKG in
27-
just a single round. Going from two rounds to just one is a huge
28-
improvement in simplicity and performance." />
26+
just a single round." />
2927
<meta property="article:author" content="Lucas Meier" />
30-
<meta property="article:published_time" content="2026-05-20T00:00:00Z" />
31-
<meta property="article:modified_time" content="2026-05-20T00:00:00Z" />
28+
<meta property="article:published_time" content="2026-05-21T00:00:00Z" />
29+
<meta property="article:modified_time" content="2026-05-21T00:00:00Z" />
3230

3331
<link rel="canonical" href="https://commonware.xyz/blogs/golden" />
3432

3533
<meta name="twitter:card" content="summary_large_image" />
3634
<meta property="twitter:domain" content="commonware.xyz" />
3735
<meta property="twitter:url" content="https://commonware.xyz/blogs/golden" />
38-
<meta property="twitter:title" content="Your Golden Ticket to a Better
39-
DKG" />
36+
<meta property="twitter:title" content="Your Golden Ticket to a
37+
Better DKG" />
4038
<meta property="twitter:description" content="We’ve completed an
4139
initial implementation of the Golden protocol, which lets you perform a
42-
DKG in just a single round. Going from two rounds to just one is a huge
43-
improvement in simplicity and performance." />
40+
DKG in just a single round." />
4441
<meta property="twitter:image" content="" />
4542
<meta property="twitter:site" content="@commonwarexyz" />
4643
<meta property="twitter:creator" content="https://x.com/cronokirby" />
@@ -103,7 +100,7 @@ <h1>Your Golden Ticket to a Better DKG</h1>
103100

104101
<div class="author">By <a href="https://x.com/cronokirby">Lucas
105102
Meier</a></div>
106-
<div class="date">May 20th, 2026</div>
103+
<div class="date">May 21st, 2026</div>
107104
</div>
108105
<p>We’ve completed an initial implementation of the <a
109106
href="https://eprint.iacr.org/2025/1924">Golden protocol</a>,
@@ -251,11 +248,10 @@ <h1 id="the-two-round-approach">The Two Round Approach</h1>
251248
to a consensus protocol, e.g. waiting a certain number of
252249
<em>blocks</em> rather than a certain amount of time. It’s
253250
possible that this is correct in the <a
254-
href="https://dl.acm.org/doi/10.1145/42282.42283">partial
255-
synchrony model</a> as well (<a
256-
href="https://eprint.iacr.org/2023/1196">citation</a>).</p>
257-
<p>It’s also operationally complicated to have multiple rounds.
258-
The protocol is stateful between the rounds. Players need to
251+
href="https://eprint.iacr.org/2023/1196">partial synchrony
252+
model</a> as well.</p>
253+
<p>Multiple rounds are also operationally complicated. The
254+
protocol is stateful between the rounds. Players need to
259255
remember what shares they received, and what they did or didn’t
260256
ack. We rely on private out-of-band communication for those
261257
shares, rather than a public log of messages. This makes
@@ -280,13 +276,14 @@ <h1 id="the-one-round-approach">The One Round Approach</h1>
280276
memory completely, we would be able to retrieve our share and
281277
any public results just by looking at the log, which contains
282278
what each dealer posted.</p>
283-
<p>We would not need any kind of synchrony assumption. After all
284-
dealers have posted their log, you’re ready to go, with no need
285-
to wait for acknowledgement. In practice you would want to set a
286-
cutoff time (in terms of blocks, ideally), and would need to
287-
make sure that you had a supermajority of valid contributions,
288-
in order to prevent stalling by having malicious dealers
289-
withhold their contribution.</p>
279+
<p>The protocol can proceed immediately after the dealers have
280+
posted their logs, without needing to wait for acknowledgments
281+
from the players. This lets us avoid any kind of synchrony
282+
assumption. In practice you would want to set a cutoff time (in
283+
terms of blocks, ideally), and would need to make sure that you
284+
had a supermajority of valid contributions, in order to prevent
285+
stalling by having malicious dealers withhold their
286+
contribution.</p>
290287
<p>There’s also no need to reason about malicious players in
291288
this scheme: because dealer contributions are <em>publicly
292289
verifiable</em>, anyone can check that each dealer did the right
@@ -313,8 +310,9 @@ <h1 id="the-one-round-approach">The One Round Approach</h1>
313310
href="https://eprint.iacr.org/2021/339">Groth’s DKG</a>, which
314311
uses ElGamal encryption together with a NIZK of correct
315312
encryption. That achieves the properties we want, but would
316-
involve a very large, and thus expensive, ZK proof. Doing this
317-
naively would not be enough, so we need to dig a bit deeper.</p>
313+
involve a ZK proof over an excessively large statement. This
314+
naive approach would be impractical for hundreds of validators,
315+
so we need to dig a bit deeper.</p>
318316
<h1 id="making-this-more-efficient">Making this more
319317
efficient</h1>
320318
<p>Treating encryption as a black box and doing a full ZK proof
@@ -614,7 +612,7 @@ <h1 id="performance">Performance</h1>
614612
because you don’t need to wait for acks, in practice this would
615613
be a lot faster.</p>
616614
<h1 id="conclusion">Conclusion</h1>
617-
<p>We hope to continue grinding on the performance, as well as
615+
<p>We’ll continue grinding on the performance, as well as
618616
testing and verifying the security of our implementation, in
619617
order to make this protocol a trustworthy alternative to our
620618
current DKG. We expect that the one round protocol will be a lot

docs/blogs/golden.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
2-
title: "A Golden Ticket to One-Round DKGs"
2+
title: "Your Golden Ticket to a Better DKG"
33
description: "We've completed an initial implementation of the Golden protocol, which lets you perform a DKG in just a single round."
4-
date: "May 20th, 2026"
5-
published-time: "2026-05-20T00:00:00Z"
6-
modified-time: "2026-05-20T00:00:00Z"
4+
date: "May 21st, 2026"
5+
published-time: "2026-05-21T00:00:00Z"
6+
modified-time: "2026-05-21T00:00:00Z"
77
author: "Lucas Meier"
88
author_twitter: "https://x.com/cronokirby"
99
url: "https://commonware.xyz/blogs/golden"
@@ -146,7 +146,7 @@ which we usually try to avoid, because assuming realtime execution is quite unre
146146
In practice, you can improve the situation by tying the clock to a consensus protocol,
147147
e.g. waiting a certain number of *blocks* rather than a certain amount of time.
148148
It's possible that this is correct in the
149-
[partial synchrony model](https://dl.acm.org/doi/10.1145/42282.42283) as well ([citation](https://eprint.iacr.org/2023/1196)).
149+
[partial synchrony model](https://eprint.iacr.org/2023/1196) as well.
150150

151151
Multiple rounds are also operationally complicated.
152152
The protocol is stateful between the rounds.
@@ -204,7 +204,7 @@ such as [Groth's DKG](https://eprint.iacr.org/2021/339), which uses ElGamal
204204
encryption together with a NIZK of correct encryption.
205205
That achieves the properties we want, but would involve a ZK proof
206206
over an excessively large statement.
207-
This naive approach would be orders of magnitude slower than something practical,
207+
This naive approach would be impractical for hundreds of validators,
208208
so we need to dig a bit deeper.
209209

210210
# Making this more efficient

docs/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@ <h2>Blogs</h2>
137137
<h3><a href="/blogs/golden.html">Your Golden Ticket to a Better DKG</a></h3>
138138
<div class="meta">
139139
<div class="author">By <a href="https://x.com/cronokirby">Lucas Meier</a></div>
140-
<div class="date">May 20th, 2026</div>
140+
<div class="date">May 21st, 2026</div>
141141
</div>
142-
<p>We've completed an initial implementation of the Golden protocol, which lets you perform a DKG in just a single round. Going from two rounds to just one is a huge improvement in simplicity and performance.</p>
142+
<p>We've completed an initial implementation of the Golden protocol, which lets you perform a DKG in just a single round.</p>
143143
<h3><a href="/blogs/phone-a-friend.html">Phone a Friend</a></h3>
144144
<div class="meta">
145145
<div class="author">By <a href="https://x.com/gvamsip">Guru Vamsi Policharla</a></div>

0 commit comments

Comments
 (0)