Browse Source

Merge pull request #4 from dcbuild3r/main

review(FAQ)
main
tvanepps 1 year ago
committed by GitHub
parent
commit
5b339c9f7c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 16 deletions
  1. +3
    -5
      FAQ.md
  2. +18
    -11
      README.md

+ 3
- 5
FAQ.md

@ -1,22 +1,20 @@
### How do I contribute randomness to the Ceremony?
The Ethereum Foundation is hosting an interface at ceremony.ethereum.org during the Public contribution period from X date to Y date. If you'd like an alternative to the hosted interface, you are welcome to contribute via a [CLI](link). After this public contribution period, we will accept special contributions from bespoke [implementations]() or unique randomness generation. Funding is available for both of these, more information will be shared in the coming weeks.
The Ethereum Foundation is hosting an interface at [ceremony.ethereum.org](https://ceremony.ethereum.org/) during the public contribution period from X date to Y date. If you'd like an alternative to the hosted interface, you are welcome to contribute via a [CLI](https://github.com/crate-crypto/kzg-ceremony-cli.git). After this public contribution period, we will accept special contributions from bespoke [implementations](https://github.com/ethereum/kzg-ceremony#client-implementations) or unique randomness generation. Funding is available for both of these, more information will be shared in the coming weeks.
### What does KZG stand for?
KZG comes from Kate, Zaverucha, and Goldberg. These are the author surnames from the paper ["Constant-Size Commitments to Polynomials and
Their Applications"](https://www.iacr.org/archive/asiacrypt2010/6477178/6477178.pdf), which outlines the underlying cryptographic mechanism that the Ethereum ceremony plans to utilize.
KZG comes from Kate, Zaverucha, and Goldberg. These are the author surnames from the paper ["Constant-Size Commitments to Polynomials and Their Applications"](https://www.iacr.org/archive/asiacrypt2010/6477178/6477178.pdf), which outlines the underlying cryptographic mechanism that the Ethereum ceremony plans to utilize.
### What happens during a Ceremony?
1. A Summoner runs a computation using three random inputs (aka secrets) they provide. Three different kinds of secret are required in this Ceremony: text, cursor movements, and browser generated.
1. A Summoner runs a computation using three random inputs (aka secrets) they provide. Three different kinds of secrets are required in this Ceremony: text, cursor movements, and browser generated.
2. The output of that computation is then passed to the Sequencer - a coordinating server which orchestrates transfers between participants.
3. The Sequencer passes the computation from step two to the next summoner, who is waiting to start. This participant computes an output using their secret inputs, and combines it with the work from Summoner 1. At this point the cycle starts again.
While it’s important that summoners discard the random secrets they use, the Ceremony only requires one honest participant to do so. As long as one person does this, observers can be sure that the final output can never be fully reverse engineered or corrupted.
Here's another framing from the [Cryptography Rationale](https://hackmd.io/@6iQDuIePQjyYBqDChYw_jg/SJ-08AoT5):
> For EIP-4844, Ethereum needs four different Structured Reference Strings (SRS) each of different sizes. Each SRS has a secret associated with it. For security, the SRS’s must be computed in such a way that no single person knows the secret associated with them. The solution is to have multiple people contribute to the secret. If all of these people collude, then they can recover the secret. If even one person does not collude, then the secret is unrecoverable. The process of multiple people contributing to the secret is known as a ceremony.
### Couldn’t another commitment scheme without a "trusted setup" be used?

+ 18
- 11
README.md

@ -8,12 +8,13 @@ The ceremony is designed to have the following characteristics:
- wide ecosystem participation
- accessible via browser
- a meaningful narrative in a simple interface
- 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.
## Context
- [KZG Ceremony FAQ](https://github.com/ethereum/kzg-ceremony/blob/main/FAQ.md)
- [How do trusted setups work?](https://vitalik.ca/general/2022/03/14/trustedsetup.html)
- [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844)
@ -21,14 +22,20 @@ The best place to follow along is the KZG Ceremony channel in the Ethereum R&D D
- [KZG polynomial commitments](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html)
## KZG Ceremony
- [KZG Ceremony Timeline](https://notes.ethereum.org/@CarlBeek/kzg_ceremony_timelines) (subject to change)
- [Spec Repo](https://github.com/ethereum/kzg-ceremony-specs)
- [Spec Repo](https://github.com/ethereum/kzg-ceremony-specs)
- [KZG ceremony sequencer implementation](https://github.com/ethereum/kzg-ceremony-sequencer) (Rust)
- [SECBIT Spec + Implementation Audit](https://github.com/ethereum/kzg-ceremony/blob/main/KZG10-Ceremony-audit-report.pdf)
## Client Implementations
- [Small powers of Tau](https://github.com/crate-crypto/small-powers-of-tau) (Rust)
- [Worldcoin](https://github.com/worldcoin/kzg-ceremony-client) (client - WIP)
- [WASM contribution code](https://github.com/worldcoin/kzg-ceremony-participant) (Rust)
## Other Documentation
- [Trusted Setup Rationale](https://hackmd.io/@6iQDuIePQjyYBqDChYw_jg/SJ-08AoT5)
- [Towers of Pau](https://dknopik.de/)
- [Contributor Identification](https://pse-team.notion.site/Contributor-Identification-bd2824138a5f446785fdd70c60684176)
@ -39,12 +46,12 @@ The best place to follow along is the KZG Ceremony channel in the Ethereum R&D D
| Call # | Link | Date |
| ---: | ---: | ---: |
| 1 | [Agenda/Recording](https://github.com/ethereum/pm/issues/546) | June 9 2022 |
| 2 | [Agenda/Recording](https://github.com/ethereum/pm/issues/558) | June 23 2022|
| 3 | [Agenda/Recording](https://github.com/ethereum/pm/issues/560) | July 7 2022|
| 4 | [Agenda/Recording](https://github.com/ethereum/pm/issues/569) | July 21 2022|
| 5 | [Agenda/Recording](https://github.com/ethereum/pm/issues/587) | Aug 4 2022|
| 6 | [Agenda/Recording](https://github.com/ethereum/pm/issues/593) | Aug 18 2022|
| 7 | [Agenda/Recording](https://github.com/ethereum/pm/issues/613) | Sept 1 2022|
| 8 | [Agenda/Recording](https://github.com/ethereum/pm/issues/623) | Sept 15 2022|
| 9 | [Agenda/Recording](https://github.com/ethereum/pm/issues/636) | Sept 29 2022|
| 1 | [Agenda/Recording](https://github.com/ethereum/pm/issues/546) | June 9 2022 |
| 2 | [Agenda/Recording](https://github.com/ethereum/pm/issues/558) | June 23 2022|
| 3 | [Agenda/Recording](https://github.com/ethereum/pm/issues/560) | July 7 2022|
| 4 | [Agenda/Recording](https://github.com/ethereum/pm/issues/569) | July 21 2022|
| 5 | [Agenda/Recording](https://github.com/ethereum/pm/issues/587) | Aug 4 2022|
| 6 | [Agenda/Recording](https://github.com/ethereum/pm/issues/593) | Aug 18 2022|
| 7 | [Agenda/Recording](https://github.com/ethereum/pm/issues/613) | Sept 1 2022|
| 8 | [Agenda/Recording](https://github.com/ethereum/pm/issues/623) | Sept 15 2022|
| 9 | [Agenda/Recording](https://github.com/ethereum/pm/issues/636) | Sept 29 2022|

Loading…
Cancel
Save