/kzg-ceremony

Resources and documentation related to the planned Ethereum KZG Ceremony.

Summary

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.

Resources

Audits

Client Implementations

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!)

CLI Interfaces

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.

Browser Interfaces

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 🐶
  1. audit: QmevfvaP3nR5iMncWKa55B2f5mUgTAw9oDjFovD3XNrJTV
  2. doge: QmRs83zAU1hEnPHeeSKBUa58kLiWiwkjG3rJCmB8ViTcSU

BLS Libraries

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
py_ecc Python MIT

Media

Title Venue Participants Release Date
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

Public Calls

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