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

Update the Solidity Verifier to verify the Poseidon relations #1078

Closed
maramihali opened this issue Aug 20, 2024 · 0 comments
Closed

Update the Solidity Verifier to verify the Poseidon relations #1078

maramihali opened this issue Aug 20, 2024 · 0 comments

Comments

@maramihali
Copy link
Contributor

No description provided.

@maramihali maramihali added this to the Solidity Verifier milestone Sep 5, 2024
@maramihali maramihali changed the title Update the Solidity Verifier to be able to use the Poseidon gate Update the Solidity Verifier to verify the Poseidon relations Sep 5, 2024
AztecBot pushed a commit that referenced this issue Sep 7, 2024
…ier (#8243)

Add PoseidonRelation to UltraKeccak and reflect the changes in Solidity
verifier. This required :
- implementing the Poseidon relations in Solidity and port the Poseidon
parameters
- changing constants
-  adding the missing selectors in verification key
- regenerate the Lagrange denominators for the Barycentric evaluation
(Poseidon becomes the largest relation so the univariates in sumcheck
have length 8 rather than 7 so we need more precomputed stuff),
- removed hardcoded constants in Zeromorph to aid debugging when we
change the number of commitments again

Solidity verifier quirks: 
- moved the relations in a relation library and the transcript in a
transcript library which both have an external function because the
verifier contract became too big (this might get reverted when
optimising the contract)
- modified the Javascript test thingy that deploys the verifier contract
for flow tests. I had to separately deploy the two libraries link them
in the contract's bytecode and only then deploy the contract.

Also, now the ultra_honk_tests are typed and run both Ultra and
UltraKeccak flavor to have a way of debugging problems in proofs sent to
the Solidity contract at bberg level as well.

Closes:
#1078
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

No branches or pull requests

1 participant