Many hands
on one seal.
A trusted setup for jat’s zero-knowledge keys.
Before a zero-knowledge system can be trusted, the key that powers its proofs has to be built by many independent people instead of one. If even a single contributor folds in fresh randomness and throws their secret away, that key is sound for good. This page is where the key gets built, one pair of hands at a time.
A Groth16 proving key is born with a hidden secret, often called the toxic waste. Whoever held it could forge proofs the network would accept as real. A trusted setup retires that risk by passing the key through a line of strangers: each one folds in fresh randomness and discards their own secret. To forge a proof later, every contributor in the line would have had to collude, and every one of them would have had to keep their secret. A single honest hand anywhere in the chain makes the key safe for good.
- 1Your browser downloads the current key and gathers randomness from the way you move your mouse. Your secret never leaves your device.
- 2snarkjs folds that randomness into the key entirely in memory, producing a new key and a public fingerprint, its hash.
- 3The new key and its hash are published to the chain, and the next contributor builds on top of yours. Anyone can replay the chain and confirm every step.
Reading the chain…