-
Notifications
You must be signed in to change notification settings - Fork 312
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The goal is to make `ClientIvc` more flexible and user friendly, primarily through making recursive folding verification an internal component to the class. E.g. given an arbitrary collection of circuits in container `circuits`, I can now simply do this: ```cpp ClientIvc ivc; for (auto circuit : circuits) { ivc.accumulate(circuit); } proof = ivc.prove(); ``` where `proof`, if verified, establishes knowledge of a witness satisfying all 10 circuits. Previously this was not the case unless the required recursive folding verifiers were baked into the circuits being accumulated (as was the case with the kernel). Now, `accumulate` automatically appends a recursive folding verifier to each circuit (beginning with the third call to accumulate since prior to that no fold proof exists). Note that this is already how we were handling the recursive merge verification. This has the advantage of removing details of the IVC scheme from the kernel itself, generalizing ClientIvc for use on an arbitrary set of circuits, and improving the interface in all cases. As expected, the benchmark does not change in any substantial way. (To the extent it does change, its because the gate counts in the circuits have changed slightly due to this new structure). ``` -------------------------------------------------------------------------------- Benchmark Time CPU Iterations UserCounters... -------------------------------------------------------------------------------- ClientIVCBench/Full/6 17908 ms 12848 ms 1 ```
- Loading branch information
1 parent
c75fbd4
commit f360b3f
Showing
9 changed files
with
342 additions
and
342 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
Oops, something went wrong.