Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ethereum/kzg-ceremony-specs
Specs for Ethereum's KZG Powers of Tau Ceremony
https://github.com/ethereum/kzg-ceremony-specs
eip4844 ethereum kzg powers-of-tau
Last synced: 3 months ago
JSON representation
Specs for Ethereum's KZG Powers of Tau Ceremony
- Host: GitHub
- URL: https://github.com/ethereum/kzg-ceremony-specs
- Owner: ethereum
- License: cc0-1.0
- Created: 2022-06-02T15:49:26.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-02-03T08:36:01.000Z (almost 2 years ago)
- Last Synced: 2024-09-28T06:31:13.799Z (3 months ago)
- Topics: eip4844, ethereum, kzg, powers-of-tau
- Homepage:
- Size: 315 KB
- Stars: 109
- Watchers: 14
- Forks: 33
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Powers of Tau Specification
These documents comprise a specification for Ethereum's Powers of Tau (PoT) setup for use in [KZG commitments](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html) in [EIP-4844 (Proto-Danksharding)](https://eips.ethereum.org/EIPS/eip-4844) and ultimately [Full Danksharding](https://notes.ethereum.org/@dankrad/new_sharding).The ceremony takes place between _participants_ and the _sequencer_. _Participants_ are the entities that contribute their secret randomness to the final output $\tau$ 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.
## Table of contents
* [10,000 ft Overview](#10000-ft-overview)
* Cryptography
* [BLS](./docs/cryptography/BLS.md)
* [SDK](./docs/cryptography/sdk.md)
* Contributions
* [Object Definitions](./docs/contribution/contribution.md)
* Sequencer
* [Requirements](./docs/sequencer/sequencer.md)
* [Contributor Qualification](./docs/sequencer/contributorQualification.md)
* [Contribution Queuing](./docs/sequencer/queueStrategy.md)
* [API Definition (Open API + JSON Schema)](./apiSpec)
* Participant/Client
* [Requirements](./docs/participant/participant.md)
* [API Lifecycle](./docs/participant/lifecycle.md)
* [Initialization](#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:
1. $([\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])$
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])$
3. $([\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])$
4. $([\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](./docs/cryptography/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](./docs/contribution/contribution.md) for
the contribution format requirements.## Initialization
The ceremony is initialized to [initialContribution.json](./initialContribution.json).