OpenChainGraph · Explainer Illustrative walkthrough · nine steps

How a phone, a laptop and a relay produce one random value

One random value that no single participant chose. Three devices each bring a secret, each lock it behind a commitment before anyone speaks, and a relay that sees only hashes collects them. When every commitment is in, the secrets open and anyone can recompute the joint value. The walkthrough runs twice more: once where the last revealer walks away, and once where the three participants have never met. Every hash on this page is an illustrative value, shown truncated, and the ceremony itself is a design, and the estate operates no such service.

Goal of this animation

Show how a phone, a laptop and a hardware signer can produce one random value together, so the result stays unpredictable while at least one participant keeps its secret, and what it costs when the last participant to reveal walks away instead.

🔒 No personal dataEvery commitment, secret and digest on this page is an illustrative value, labelled as such and shown visibly truncated. No ceremony was run to produce them, and no network call is made after the page loads. The walkthrough is a recording of no real event: it is a design, drawn step by step.
☁ Our server is Cloudflare“AINumbers server” means Cloudflare today: the site's files are delivered through Cloudflare's network. The coordinator drawn in steps 4 and 5 is not a service that exists. It is a design for one, and the page says what such a coordinator would and would not see.
Presenter mode shows one step per screen. Arrow keys move, A toggles autoplay, Esc exits. Step 7 carries the abort track.
The property being built is narrow and worth naming exactly: the joint value stays unpredictable while at least one participant keeps its secret, even if every other participant colludes. It is not a guarantee that the value is unbiased, and step 7 shows the one move a dishonest participant still has.
1
Step 1 · The problem

One source of randomness is one point of control

Whenever one party chooses a random value, that party can try candidates until it likes the outcome. A ceremony removes the single choice: nobody picks the value, everybody contributes a piece of it, and the pieces are locked in before any of them is shown.

one chooser one party picks the random value it can re pick until the outcome suits it everyone else takes its word single point of control a ceremony each participant holds one sealed piece pieces lock before any of them opens the joint value needs every piece no single point of control

The same instinct behind dealing cards face down: the deal is only fair if nobody has seen another player's hand before betting. Commitments are the face down part, reveals are the showdown, and the next eight steps draw both.

2
Step 2 · The participants

A phone, a laptop and a hardware signer

Three participants on three different kinds of device each generate a fresh secret locally: s₁ on the phone, s₂ on the laptop, s₃ on the hardware signer. None of the three secrets leaves its device in this step, and none of the three participants can guess another's.

phone s₁ = 8c41… secret stays on device participant A laptop s₂ = 1f9d… secret stays on device participant B hardware signer s₃ = b602… secret never shown, even here participant C illustrative values throughout: the suffixes stand for 256 bit random strings drawn on each device

Different device classes matter for the trust argument. A hardware signer's secret is hard to extract even by its owner, a laptop's is as safe as its owner's hygiene, and a phone sits in between. Step 8 asks who these three are; for now they only need to be three, and mutually suspicious.

3
Step 3 · Commitment

Each device commits by showing a QR of its commitment

Each participant computes commitment = SHA-256(secret) and shows it as a QR code on its own screen. The commitment reveals nothing about the secret, but it binds the participant to it: once shown, the secret is fixed, and a later reveal that does not match the commitment is visible to everyone.

commitment = SHA-256( secret ) · a binding that tells nothing phone c41a…9f02 QR of the commitment, illustrative laptop 7d83…21be QR of the commitment, illustrative signer e5c9…8871 QR of the commitment, illustrative hashes truncated for display, illustrative values: a real commitment is 32 bytes, the whole point is that the QR shows the hash and never the secret

A hash function alone makes the commitment hiding, but not binding against a participant who computes commitments for several secrets and reveals whichever is convenient afterwards. Closing that gap needs the ceremony's choreography, and step 4 is where the choreography starts: an order is agreed before any secret moves.

4
Step 4 · The relay

The relay collects commitments and sees only hashes

A coordinator has to exist somewhere: the three devices are not on one network, and QR codes need collecting in an agreed order. The relay's entire diet is the three commitment hashes. It never holds a secret, cannot name any secret, and cannot change any commitment it has acknowledged.

relay · a design a coordinator could run on Cloudflare Durable Objects 1 c41a…9f02 2 7d83…21be 3 e5c9…8871 order fixed at arrival, list is public c41a…9f02 7d83…21be e5c9…8871 sees: hashes only · never a secret, never a plaintext

This panel is the design boundary and the page's most important label. The relay is drawn as what a coordinator for this protocol could be, and never as an AINumbers service. Its trust burden is deliberately small: it orders messages and serves the list, and every value it touches is public the moment it arrives. If it disappears, participants can hold the ceremony again; nothing it saw helps it or anyone it reports to predict the joint value.

5
Step 5 · Reveal

Only when every commitment is in do the secrets open

The relay publishes the full commitment list. Each participant now reveals its secret, and anyone can check each reveal against the commitment from step 3. The order is the protection: committing before anyone reveals removes the option to choose a secret after seeing someone else's.

relay publishes: [ c41a…9f02 , 7d83…21be , e5c9…8871 ] · commitment phase closed reveal s₁ ✓ matches c41a…9f02 reveal s₂ ✓ matches 7d83…21be reveal s₃ ✓ matches e5c9…8871 reveals are checked by anyone against the published commitments, a mismatch is public and disqualifies that participant

Step 7 is named after what can still go wrong here, and the frank answer is: one thing. The choreography removes every advantage except position, and position is exactly what the last revealer holds. First, the value itself.

6
Step 6 · The joint value

Anyone recomputes the same value

With all secrets revealed, the joint value is SHA-256(s₁ ‖ s₂ ‖ s₃). The computation needs no permission and no equipment beyond the transcript: every input is public, so every reader gets the same 256 bits. Illustrative and truncated here, as everywhere on this page.

s₁ s₂ s₃ SHA-256 of the three secrets in order 4be2…d90a the joint value, illustrative no participant chose it, no participant can derive it alone, and one participant keeping its secret is enough to keep it unpredictable

Why one secret kept is enough: the joint hash is a function of all three secrets, and hash outputs cannot be worked backwards. If even one secret was drawn privately on its own device and never leaked before its reveal, the combined output is unpredictable to everyone outside that device, no matter what the other two did. Predictability would require predicting that one secret.

7
Step 7 · Second track: the abort

What an abort costs the last revealer

The last participant to reveal sees every other secret first, so it can compute the joint value before deciding whether to publish its own. If it dislikes the value, it can walk away and withhold the reveal. This is the one move a bad actor still has that the choreography cannot remove, and the ceremony answers it with cost rather than with impossibility.

last revealer sees s₁ and s₂ first computes 4be2…d90a dislikes the result stop abort cost 1: the commitment e5c9…8871 stays on the public list tied to that participant, visible to everyone, unexplained silence is on record cost 2: the round fails visibly, no joint value issues everyone sees which commitment never opened cost 3: aborting again is a pattern rather than an accident the same participant walking away twice is the common factor, in public

Said plainly: the ceremony guarantees unpredictability while one participant keeps its secret. It does not guarantee that a round completes. What keeps the last revealer from aborting a second time is that its commitment is public and attributable, the failed round is public, and a participant that aborts whenever the value displeases it identifies itself as the saboteur over repeated ceremonies. Protocols in this family add economic stakes, where an abort forfeits a deposit, but a deposit is an application decision rather than a property of the hashing.

8
Step 8 · Third track: strangers

Participants who do not know each other

The ceremony is strongest when the participants have no common interest and cannot reach each other to collude. One selection design: participants are drawn by region and by authentication type, so the three secrets come from a phone in one region, a hardware signer in another and a laptop in a third, with no channel besides the relay.

selection: one participant per region, one per device class, drawn from volunteers, identities pseudonymous to the relay region 1 phone commits c41a…9f02 region 2 hardware signer commits e5c9…8871 region 3 laptop commits 7d83…21be collusion needs a side channel; different regions, device classes and pseudonymity make finding one the expensive part

This is the design that would matter if the joint value ever protected something of value: any single stranger who plays straight is enough, and a briber must find and corrupt a specific anonymous participant before the reveal window closes, in a region it may not operate in, on a device class it cannot easily extract. The randomness of the selection is itself part of the guarantee, which is why a ceremony's participant list is published with the same care as its output.

9
Step 9 · Estate tie-in

In the AINumbers estate

What the estate does today, what it does not, and where this design would sit if it were ever wanted.

The estate uses external randomness today

The estate's randomness does not come from a ceremony. The beacon seeded fair sampling nodes, including art-774, derive their sampling seed from drand, a public randomness beacon, and a page side quicknet signature check merged in PR #2551 verifies a beacon round's BLS signature in the browser. The estate drinks from an outside source of publicly verifiable randomness rather than running its own.

Salts today: single party

The estate's sha256-salted@1 commitment draws its salt as fresh single party randomness at commitment time. That is the right shape for one party committing its own record: the salt needs to be unpredictable, and its chooser has no conflict of interest. A multi party ceremony as salt is a labelled design here, nothing more: it would matter only where no single party should be able to choose the salt, and the estate has no such surface today.

The ceremony itself stays a design

No coordinator, relay or Durable Object described in this walkthrough exists. The drawings are a design for one, and the property they would buy, unpredictability while one participant keeps its secret, is a different property from what drand gives: drand is trust in a beacon's committee, a ceremony is trust in one peer that keeps its secret.

Check the real surface

Read how the estate consumes a public beacon at art-774, beacon seeded fair sampling v2, and see the in browser quicknet verification that PR #2551 added. Both are live today. Everything else on this page is labelled illustrative.

🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.