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

implement Nova's Offchain Decider (prover & verifier) for non-ethereum cases #164

Merged
merged 1 commit into from
Oct 3, 2024

Conversation

arnaucube
Copy link
Collaborator

@arnaucube arnaucube commented Oct 1, 2024

The idea & motivation is that the onchain decider could still be used for non-onchain verification but the proving time is big (eg. a little bit less than 3 minutes on my laptop) since the circuit is big due the EVM constraints. Whereas with this new offchain decider we can generate the proofs much faster for the cases where it is not required to verify the proofs in the EVM.

The code is mostly abstracted from any specifics of the current usage of Groth16 & KZG10, with the idea that eventually in the future we can have Spartan plugged in and use non-pairing-curves such as pallas&vesta. For the current version it relies on KZG10 commitments.

The logic implemented in the code of this PR can be found at the updated docs section 'offchain decider': https://privacy-scaling-explorations.github.io/sonobe-docs/design/nova-decider-offchain.html

@arnaucube arnaucube changed the title implement Nova's Offchain Decider implement Nova's Offchain Decider (prover & verifier) for non-ethereum cases Oct 1, 2024
@arnaucube arnaucube force-pushed the nova-offchain-decider branch 2 times, most recently from ded416e to 04bef28 Compare October 1, 2024 07:49
@arnaucube arnaucube added Nova decider decider/compressed snark labels Oct 1, 2024
Copy link
Member

@CPerezz CPerezz left a comment

Choose a reason for hiding this comment

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

LGTM!

Awesome job

folding-schemes/src/folding/nova/decider.rs Show resolved Hide resolved
folding-schemes/src/folding/nova/decider.rs Outdated Show resolved Hide resolved
folding-schemes/src/folding/nova/decider.rs Show resolved Hide resolved
@arnaucube arnaucube force-pushed the nova-offchain-decider branch 3 times, most recently from c831ab5 to f0af802 Compare October 3, 2024 08:48
…m cases

The idea & motivation is that the [onchain
decider](https://privacy-scaling-explorations.github.io/sonobe-docs/design/nova-decider-onchain.html)
could still be used for non-onchain verification but the proving time is
big (eg. a little bit less than 3 minutes on my laptop) since the
circuit is big due the EVM constraints. Whereas with this new [offchain
decider](https://privacy-scaling-explorations.github.io/sonobe-docs/design/nova-decider-offchain.html)
we can generate the proofs much faster for the cases where it is not
required to verify the proofs in the EVM.

The code is mostly abstracted from any specifics of the current usage of
Groth16 & KZG10, with the idea that eventually in the future we can have
Spartan plugged in and use non-pairing-curves such as pallas&vesta. For
the current version it relies on KZG10 commitments.

The logic implemented in the code of this commit can be found at the updated
docs section 'offchain decider':
https://privacy-scaling-explorations.github.io/sonobe-docs/design/nova-decider-offchain.html
@arnaucube arnaucube added this pull request to the merge queue Oct 3, 2024
Merged via the queue into main with commit edcef6c Oct 3, 2024
8 checks passed
@arnaucube arnaucube mentioned this pull request Oct 4, 2024
3 tasks
@arnaucube arnaucube added this to the Stabilize lib milestone milestone Oct 4, 2024
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.

2 participants