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

Add solidity verifier of the nova+cyclefold #87

Merged
merged 30 commits into from
Apr 25, 2024

Conversation

arnaucube
Copy link
Collaborator

@arnaucube arnaucube commented Apr 9, 2024

  • Add Nova+CycleFold Solidity verifier generator
  • some minor updates:
    • move solidity tests to their respective files
    • add light-test feature to disable the big number of constraints in the DeciderEthCircuit, feature which is disabled by default, so only when we want to run the 'lightweight' tests we enable it (eg. fast tests locally and for the CI tests)
    • port the fix from snarkjs#480 & snarkjs#479

Current version focuses on achieving a working version, future iterations will reduce the gas costs by optimizing the public inputs and the pairing check.
We tested it in Sepolia testnet.

@arnaucube arnaucube added the decider decider/compressed snark label Apr 9, 2024
@arnaucube arnaucube marked this pull request as draft April 9, 2024 14:14
@arnaucube arnaucube force-pushed the feature/solidity-decider-verifier branch 3 times, most recently from 4090f28 to 3d2ea64 Compare April 14, 2024 17:03
@arnaucube arnaucube marked this pull request as ready for review April 15, 2024 16:54
@arnaucube arnaucube marked this pull request as draft April 15, 2024 16:54
@arnaucube arnaucube force-pushed the feature/solidity-decider-verifier branch 3 times, most recently from 267e7e1 to 2a44f94 Compare April 16, 2024 15:40
@arnaucube arnaucube marked this pull request as ready for review April 16, 2024 15:40
@arnaucube arnaucube force-pushed the feature/solidity-decider-verifier branch from 273c50f to 9c68076 Compare April 16, 2024 21:40
…ametrize limbs params

solidity-verifiers:
* update solidity limbs logic to last nonnative impl version, and to
  last u_i.x impl
* parametrize limbs params
* add light-test feature: replace the '#[cfg(not(test))]' by the
  'light-test' feature that by default is not enabled, so when running
  the github actions we enable the feature 'light-tests', and then we can
  have a full-test that runs the test without the 'light-tests' flag, but
  we don't run this big test every time.  The choice of a feature is to
  allow us to control this from other-crates tests (for example for the
  solidity-verifier separated crate tests, to avoid running the full heavy
  circuit in the solidity tests)
This is to avoid c depencency for c-kzg which is behind the c-kzg flag
and not needed.
@arnaucube arnaucube force-pushed the feature/solidity-decider-verifier branch 3 times, most recently from 050f46d to fecc1f6 Compare April 18, 2024 07:32
@arnaucube arnaucube force-pushed the feature/solidity-decider-verifier branch from fecc1f6 to bc42865 Compare April 18, 2024 13:29
@arnaucube arnaucube force-pushed the feature/solidity-decider-verifier branch from 4d77a59 to fc84ff0 Compare April 23, 2024 09:50
@arnaucube
Copy link
Collaborator Author

This PR is now ready for review.

@arnaucube arnaucube requested a review from han0110 April 23, 2024 09:55
@arnaucube arnaucube added the Nova label Apr 23, 2024
@arnaucube arnaucube mentioned this pull request Apr 23, 2024
…ev flow, also conditionally template the batchCheck related structs and methods from the KZG10 solidity template
@arnaucube arnaucube force-pushed the feature/solidity-decider-verifier branch from dba60e2 to 87d3731 Compare April 23, 2024 14:42
Copy link
Collaborator

@han0110 han0110 left a comment

Choose a reason for hiding this comment

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

First pass review, the solidity verifier looks good to me, but got a question on decider verifier side.

Copy link
Collaborator

@han0110 han0110 left a comment

Choose a reason for hiding this comment

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

LGTM!

@arnaucube arnaucube added this pull request to the merge queue Apr 25, 2024
Merged via the queue into main with commit 97df224 Apr 25, 2024
5 checks passed
@arnaucube arnaucube deleted the feature/solidity-decider-verifier branch May 23, 2024 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
decider decider/compressed snark Nova
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants