Computational cryptography › Public-key encryption and key exchange
Trust or structural assumption

Trusted setup

In plain words

Some proof systems need a one-time setup using a secret that must then be destroyed. Ceremonies with many participants make sure at least one destroyed their part.

The idea: These proof systems need public numbers built from a secret τ, so that provers can do math "at τ" without knowing it. Whoever knew τ could fake proofs, so it must be destroyed. A ceremony makes that easy to trust: each participant mixes in their own secret randomness, so the final τ is effectively the combination of all of them, and it stays unknown as long as a single participant threw their piece away.

Why it matters: If the secret leaked, fake proofs would become possible.

The details

On the map: ≥ 1 ceremony participant destroyed the secret τ

Some proof systems need public parameters derived from a secret τ that nobody may know. Whoever knows τ (the "toxic waste") can forge proofs.

Ceremonies spread the secret over many contributors[1]: the result is safe if at least one of them generated their part honestly and destroyed it. Zcash's first ceremony (2016) had six participants[2]. Ethereum's KZG ceremony (2023) gathered about 141,000 contributions[3].

Rests on

If any of these breaks, this breaks too.

If it falls

If this breaks, these break with it.

References

  1. Scalable Multi-party Computation for zk-SNARK Parameters in the Random Beacon Model. IACR Cryptology ePrint Archive, Paper 2017/1050. eprint.iacr.org/2017/1050
  2. Eli Ben-Sasson, Alessandro Chiesa, Matthew Green et al. Secure Sampling of Public Parameters for Succinct Zero Knowledge Proofs. 2015 IEEE Symposium on Security and Privacy. doi:10.1109/sp.2015.25
  3. Ethereum Foundation. Wrapping up the KZG Ceremony. Ethereum Foundation blog, 2024. blog.ethereum.org/en/2024/01/23/kzg-wrap