You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
…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
No description provided.
The text was updated successfully, but these errors were encountered: