-
Notifications
You must be signed in to change notification settings - Fork 12
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
Add skeleton for porting Nova verification #4
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks good, it has a few TODOs that may be worth tackling before merging though?
@@ -0,0 +1,2945 @@ | |||
pragma solidity ^0.8.0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It may be worth adding a comment on these generated .sol
files pointing to the python script that generates them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It makes sense
@@ -0,0 +1,2945 @@ | |||
pragma solidity ^0.8.0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here
This solid PR contains a bunch of contracts that allow starting the porting process of Nova's
CompressedSnark
verification from Rust to Solidity.The list of contribution is following:
CompressedSnark
verification - which is essentially a bunch of trivial checks of input data lengths;CompressedSnark
verification - this is a part of verification where Poseidon is used (checking if the output primary hash in R1CS instances point to the right running instance);CompressedSnark
andVerifierKey
hardcoded instances) into EVM memory - necessary for debugging.Currently (for simplicity) we fix actual proof and key for its successful verification (we use this example from Nova) in order to have some stable data source. That is why appropriate JSONs are also committed.