Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use the correct trusted_setup_4096.json #3583

Merged
merged 1 commit into from
Jan 17, 2024
Merged

Conversation

CarlBeek
Copy link
Contributor

Problem

The incorrect version of the trusted-setup was used in the specs.

Solution

Use the correct trusted setup as generated by ethereum/kzg-ceremony-verifier with the final ceremony transcript (transcript sha256: 8ed1c73857e77ae98ea23e36cdcf828ccbf32b423fddc7480de6).

Detailed explanation

When adding the g1_monomial points to trusted_setup_4096.json in ethereum/kzg-ceremony-verifier#2, I mistakenly used the wrong version of the ceremony transcript which resulted in all downstream repos that depend on the ceremony ingesting the incorrect SRS. This was then included into the consensus-specs presets in #3557.

This was entirely the result of me working too quickly and using a random ceremony-transcript I had lying around and not verifying it was the actual transcript output (I have many transcript.json files on disk).

The updated trusted_setup_4096.json in this PR are from the final ceremony transcript (sha256 hash 8ed1c73857e77ae98ea23e36cdcf828ccbf32b423fddc7480de658f9d116c848) which yields the same g1_lagrange and g2_monomial outputs as before #3557 and plus the g1_monomial as per the needs of #3557.

What do

As far as I am aware, none of the consensus clients have upgraded to the version of the trusted_setup_4096.json deployed in #3557 and so this should have no effect on any of the test-nets (nor mainnet).

Trust, but verify

Please do not take my word that this is the correct file, go and run ethereum/kzg-ceremony-verifier yourself and check:

  • The transcript.json it downloads matches sha-256 8ed1c73857e77ae98ea23e36cdcf828ccbf32b423fddc7480de6
  • The output_setups/trusted_setup_4096.json is the same as this PR.
  • The g1_lagrange and g2_monomial in trusted_setup_4096.json match those from before EIP-7594: Add cryptography specs for sampling #3557
  • Any further checks that make sense to you

Attribution

Huge thank you to @zilm13 for finding this! 🙏🙏 Also thanks to @jtraglia & @hwwhww for helping ensure this is now the correct file.

This was a stupid mistake on my part for which I am entirely responsible but yet is a great example of why open source is so important.

@CarlBeek
Copy link
Contributor Author

Note @jtraglia reviewed these files in ethereum/kzg-ceremony-verifier#3 (review)

Copy link
Member

@jtraglia jtraglia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍 re-checked that these are good. And no problem, mistakes happen!

Copy link
Contributor

@hwwhww hwwhww left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thank you @CarlBeek @jtraglia

And @zilm13 is the hero today! 🙏🙏

@hwwhww hwwhww merged commit 26cc618 into dev Jan 17, 2024
30 checks passed
@hwwhww hwwhww deleted the use_correct_trusted_setup branch January 17, 2024 01:31
PlasmaPower added a commit to OffchainLabs/nitro that referenced this pull request Jan 17, 2024
dapplion added a commit to gnosischain/specs that referenced this pull request Jan 18, 2024
dapplion added a commit to gnosischain/specs that referenced this pull request Jan 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants