-
Notifications
You must be signed in to change notification settings - Fork 234
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: split merge into recursive verification and proving (#7801)
ClientIvc/AztecIvc originally had a single method `accumulate(circuit)` which did two things under the hood: 1) append recursive PG/merge verifiers, and 2) perform the prover work for PG/merge. To facilitate the new noir-bb interface that Cody and I have designed, we need to be able to perform these two operations separately. This PR sets the stage for that by re-expressing the `accumulate()` method of AztecIvc in terms of two new methods: `complete_kernel_circuit_logic()` and `execute_accumulation_prover()`. The bulk of the work in doing this was similarly splitting up the method `goblin.merge()` which performs both recursive verification for the previous merge proof and merge proving for the circuit being accumulated. We now have individual methods `goblin.prove_merge()` and `goblin.verify_merge()` (which have been integrated into AztecIvc only). Merge proofs are added to a `merge_verification_queue` as they are created, which occurs on every accumulation round. When we get to a kernel we recursively verify each proof then empty the queue. On the first kernel there is a single merge proof to verify and in subsequent kernels there are two. closes AztecProtocol/barretenberg#1063
- Loading branch information
1 parent
811d62f
commit 25c49bc
Showing
5 changed files
with
121 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters