Adds SPARK#345
Open
batmendbar wants to merge 38 commits intomainfrom
Open
Conversation
This was referenced Apr 22, 2026
Closed
Bisht13
requested changes
Apr 23, 2026
CSP benchmarks
Prover time, peak RSS, peak heap, and verifier time are arithmetic means across the iterations. Peak heap comes from the largest Each metric cell shows the current value followed by the percentage delta against the latest successful Results
|
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SPARK
Reference for this implementation
Proposed protototype workflow
Serve step
Provekit prove step
Provekit and SPARK verify step
Design decisions
Pack$A$ , $B$ , $C$ into one block matrix Z:
This is a result from Marcin (https://gist.github.com/kustosz/14b62de666f721ab855536e575891bd1)
The trick:
Same total non-zeros, double the dimensions. Then for any$\beta$ , $p$ , and $q$ :
One matrix, one commitment, one opening.
Batching GPA and WHIR proofs
Combining GPA
WHIR Batching
|
num_terms_2batchede-values are committed and opened together. Opened once in sumcheck and once in rs_ws GPA|
num_terms_4batched| Address/timestamp values for row-wise and col-wise memory checks are committed and opened togetherTemporary Sumcheck for split witness
The current ZK WHIR doesn't support batching which would enable easier handling of split witness commitment. The repo currently uses an additional sumcheck proposed by Marcin until batch ZK commitment is supported https://gist.github.com/kustosz/c7c3f756aaae77f37e035c30c4961ea3.
The trick:
Collapsing two claims into one: With claims on$A(r,0,q_1)$ and $A(r,1,q_2)$ . Draw random $\beta$ and note their RLC is just another sum over $A(r,\cdot)$ , so run a Sumcheck #2 to reduce to a single claim $A(r, \gamma)$ .
Full workflow for a Noir passport circuit:
What is not included
Benchmark
[TODO: Update with new benchmark]