Powers of Tau Specification
These documents comprise a specification for Ethereum's Powers of Tau (PoT) setup for use in KZG commitments in EIP-4844 (Proto-Danksharding) and ultimately Full Danksharding.
The ceremony takes place between participants and the sequencer. Participants are the entities that contribute their secret randomness to the final output
Table of contents
- 10,000 ft Overview
- Cryptography
- Contributions
- Sequencer
- Participant/Client
- Initialization
10,000 ft Overview
We are performing a ceremony to generate Powers of Tau for KZG proofs on Ethereum. The output of the ceremony consists of 4 (distinct) sets of Powers of Tau each with a different maximum power:
-
$([\tau_1^0]_1, [\tau_1^1]_1, \dots, [\tau_1^{2^{12}-1}]_1])$ ,$([\tau_1^0]_2, [\tau_1^1]_2, \dots, [\tau_1^{64}]_2])$ -
$([\tau_2^0]_1, [\tau_2^1]_1, \dots, [\tau_2^{2^{13}-1}]_1])$ ,$([\tau_2^0]_2, [\tau_2^1]_2, \dots, [\tau_2^{64}]_2])$ -
$([\tau_3^0]_1, [\tau_3^1]_1, \dots, [\tau_3^{2^{14}-1}]_1])$ ,$([\tau_3^0]_2, [\tau_3^1]_2, \dots, [\tau_3^{64}]_2])$ -
$([\tau_4^0]_1, [\tau_4^1]_1, \dots, [\tau_4^{2^{15}-1}]_1])$ ,$([\tau_4^0]_2, [\tau_4^1]_2, \dots, [\tau_4^{64}]_2])$
BLS Cryptography
Due to a lack of standardisation for a complete API for BLS curves, we define our own in BLS.md.
Contributions
Due to the simplicity of this PoT setup, the full contribution is sent as a json file between the sequencer & participants. This allows the use of a RESTful API between the two. See contribution documentation for the contribution format requirements.
Initialization
The ceremony is initialized to initialContribution.json.