The KZG Ceremony is a coordinated public ritual which will provide a cryptographic foundation for Ethereum scaling initiatives. From the specs repo:
The ceremony takes place between participants and the sequencer. Participants are the entities that contribute their secret randomness to the final output 𝜏 s. The role of the sequencer is to act as the common point of interaction for all participants as well as verifying participants' contribution as the ceremony progresses.
The ceremony is designed to have the following characteristics:
- wide ecosystem participation
- browser accessible
- a meaningful narrative in a simple interface
- easy to audit transcript
The best place to follow along is the KZG Ceremony channel in the Ethereum R&D Discord or the bridged telegram channel - DM one of the contributors to be added to either.
- KZG Ceremony FAQ
- How do trusted setups work?
- EIP-4844
- Proto-Danksharding FAQ
- KZG polynomial commitments
- KZG Ceremony Timeline
- Spec Repo
- Frontend Repo
- SECBIT Spec + Implementation Audit - Aug 2022
- Sigma Prime Sequencer Audit - Jan 2023
There are a number of independent implementations interested Ceremony participants can try to run locally, will have a variety of different features. (no guarantees on the quality or completeness!)
Implementation | BLS Library | Language | License | Author | Notes |
---|---|---|---|---|---|
Chotto | blst (jblst) | Java | Apache 2.0 | Stefan Bratanov (@StefanBratanov) | |
go-kzg-ceremony-client | gnark-crypto | Go | MIT | Ignacio Hagopian (@jsign) | Features: transcript verification, using additional external sources of entropy, eg. drand network, an arbitrary URL provided by the user. Note: double signing not supported due to lack of hash-to-curve in gnark. |
eth-KZG-ceremony-alt | kilic | Go | GPL-3.0 | Arnaucube (@arnaucube) | |
Towers of Pau | blst | Go | MIT | Daniel Knopnik (@dknopik), Marius van der Widjen (@MariusVanDerWijden) | Linux only, no signatures. |
cpp-kzg-ceremony-client | blst | C++ | AGPL-3.0 | Patrice Vignola (@PatriceVignola) | Features: BLS/ECDSA signing, transcript verification, Linux/Windows/MacOS support |
czg-keremony | noble-curves | JavaScript | MIT | JoonKyo Kim (@rootwarp), HyungGi Kim (@kim201212) |
Interface | BLS Library | License | Author | IPFS | Repository | Notes |
---|---|---|---|---|---|---|
ZKParty Frontend | Arkworks | Several | latest.kzgceremony.eth | trusted-setup-frontend | References the latest version of the interface, which departs from the audited version in minor ways | |
ZKParty Frontend (Audit Commit) | Arkworks | Several | [1] audit.kzgceremony.eth | trusted-setup-frontend | The exact interface which Sigma Prime audited in November 2022. May have minor bugs or differences from the latest version above. docker instructions | |
Doge KZG | gnark | MIT | Andrew Davis (@Savid) | [2] | dogekzg | 🐶 |
- audit: QmevfvaP3nR5iMncWKa55B2f5mUgTAw9oDjFovD3XNrJTV
- doge: QmRs83zAU1hEnPHeeSKBUa58kLiWiwkjG3rJCmB8ViTcSU
Library | Language | License | Audit |
---|---|---|---|
blst | C & assembly | Apache 2.0 | Audit Report, [WIP] Formal Verification |
Arkworks | Rust | Apache 2.0, MIT | |
gnark-crypto | Go & assembly | Apache 2.0 | Audit Report |
kilic | Go | Apache 2.0 | |
Herumi BLS | C++ & assembly | modified BSD | Technical Assessment |
Constantine | Nim | Apache 2.0 | |
py_ecc | Python | MIT | |
matterlabs/EIP1962 | Rust | Apache 2.0 |
Title | Venue | Participants | Release Date |
---|---|---|---|
Episode 262: Ethereum’s KZG Ceremony with Trent & Carl | Zero Knowledge | Anna Rose, Kobi Gurkan, Carl Beekhuizen, Trent Van Epps | Feb 2023 |
Ethereum's KZG Ceremony | Bankless | David Hoffman, Trent Van Epps, Carl Beekhuizen | Jan 2023 |
Peep an EIP - KZG Ceremony | EthCatHerders | Pooja Ranjan, Carl Beekhuizen | Jan 2023 |
Ethereum Foundation – EIP-4844 & KZG Ceremony | Epicenter | Friederike Ernst, Trent Van Epps, Carl Beekhuizen | Jan 2023 |
Building the KZG Ceremony | PSE Learn and Share | Nico Serrano, Geoff Lamperd | Dec 2022 |
The KZG Ceremony - or How I Learnt to Stop Worrying and Love Trusted Setups | Devcon | Carl Beekhuizen | Oct 2022 |
Call # | Link | Date |
---|---|---|
1 | Agenda/Recording | June 9 2022 |
2 | Agenda/Recording | June 23 2022 |
3 | Agenda/Recording | July 7 2022 |
4 | Agenda/Recording | July 21 2022 |
5 | Agenda/Recording | Aug 4 2022 |
6 | Agenda/Recording | Aug 18 2022 |
7 | Agenda/Recording | Sept 1 2022 |
8 | Agenda/Recording | Sept 15 2022 |
9 | Agenda/Recording | Sept 29 2022 |