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

Feat/batched opening proofs #453

Merged
merged 46 commits into from
Sep 24, 2024
Merged

Feat/batched opening proofs #453

merged 46 commits into from
Sep 24, 2024

Conversation

moodlezoup
Copy link
Collaborator

@moodlezoup moodlezoup commented Sep 16, 2024

For additively homomorphic commitment schemes (including Hyrax, Zeromorph, HyperKZG) we can use a sumcheck to reduce multiple opening proofs (multiple polynomials, not necessarily of the same size, each opened at a different point) into a single opening. This is implemented in Nova here.

In order to leverage this batching protocol while preserving the existing code architecture, we introduce opening "accumulators". Each time the prover computes an opening, where before it would compute the associated opening proof, the prover would now instead add the opening to the accumulator and defer the opening proof to the end. Similarly, each time the verifier encounters a claimed opening, instead of verifying the opening proof it instead adds the opening to its accumulator and defers the opening proof verification to the end.

This PR also includes significant refactoring (mostly related to memory-checking and R1CS/Spartan) with the intention of minimizing cloning and footguns (see issues below).

Closes #455, #382, #378, #377, and #317

EVM verifier needs to be updated to handle new batching protocol, will do in a follow-up PR

@moodlezoup moodlezoup marked this pull request as ready for review September 24, 2024 15:25
@moodlezoup moodlezoup merged commit 160c7f4 into main Sep 24, 2024
8 checks passed
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

Successfully merging this pull request may close these issues.

Sumcheck reduction for opening proofs
1 participant