/kzg-ceremony_PS

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 Link Notes
Chotto blst (jblst) Java Apache 2.0 Stefan Bratanov (@StefanBratanov) https://github.com/StefanBratanov/chotto/
go-kzg-ceremony-client gnark-crypto Go MIT Ignacio Hagopian (@jsign) https://github.com/jsign/go-kzg-ceremony-client Features: transcript verification, using additional external sources of entropy: (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) https://github.com/arnaucube/eth-kzg-ceremony-alt
Towers of Pau blst Go MIT Daniel Knopnik (@dknopik), Marius van der Widjen (@MariusVanDerWijden) https://github.com/dknopik/towers-of-pau/tree/proper-client May run into issues due to API changes.

Browser Interfaces

Interface BLS Library License Author URL IPFS Repository Notes
ZKParty Frontend Arkworks Several https://ceremony.ethereum.org/ https://latest.kzgceremony.eth.limo/ https://github.com/zkparty/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 https://audit.kzgceremony.eth.limo/ (QmevfvaP3nR5iMncWKa55B2f5mUgTAw9oDjFovD3XNrJTV) https://github.com/zkparty/trusted-setup-frontend/tree/40d421f16aafd93273f636e46dc8e0a39e4690b7 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) https://www.dogekzg.com/ QmRs83zAU1hEnPHeeSKBUa58kLiWiwkjG3rJCmB8ViTcSU https://github.com/Savid/dogekzg 🐶

BLS Libraries

Library Language License Audit Repository
blst C & assembly Apache 2.0 Audit Report, [WIP] Formal Verification https://github.com/supranational/blst
Arkworks Rust Apache 2.0, MIT https://github.com/arkworks-rs/curves
gnark-crypto Go & assembly Apache 2.0 Audit Report https://github.com/ConsenSys/gnark-crypto
kilic Go Apache 2.0 https://github.com/kilic/bls12-381
Herumi BLS C++ & assembly Technical Assessment https://github.com/herumi/bls
py_ecc Python MIT https://github.com/ethereum/py_ecc/

Media

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