Repository navigation
perf(challenges): use signed accumulation for sparse evaluation - #266
Closed
Acentelles wants to merge 1 commit into
Closed
Acentelles wants to merge 1 commit into
Acentelles wants to merge 1 commit into
Conversation
Collaborator
Author
|
Superseded by #268: retargeted to markos/recursion-integration, where this change was measured. |
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.
Summary
SparseChallengeevaluation at a point now accumulates coefficients of magnitude one or two by signed addition in the extension field. Other coefficients are still embedded into the base field and multiplied in with a mixed base-field operation, and the ordinary base-field case isE = F.Magnitude two is handled by repeating the term, which preserves the polynomial over every field. Inputs are validated as before: mismatched term counts, zero coefficients and out-of-range positions return an error.
There is no change to the proof, the transcript or the setup; only the verifier's arithmetic changes.
Changes
akita-challenges,challenge.rs: a signed-accumulation evaluator and its validation.Measured effect (on the recursion integration stack)
The standalone row delta on
mainis not measured (OPEN). The figures below are total trace rows (real plus virtual) of Jolt's recursion example, whose guest verifies one Akita proof of an inner Jolt proof. Each was measured without and with this change on the recursion integration stack, in two builds that also carry the factored compression-weight evaluation and the terminal quotient certificate.Build 1 was measured in two runs, on an AMD Ryzen 9 7950X host and an AMD EPYC 7B13 host; rows and guest ELFs are identical across the runs.
Build 2 adds further verifier changes and was measured in one run, on an AMD EPYC 7B13 host:
On build 2, the honest proof is accepted and a tampered proof is rejected, and the proof and tampered-proof bytes are identical with and without the change.
Reproduce
Run the a16z/jolt#1911 recursion example ($2^{12}$ and $2^{20}$ with the Akita dependency on a recursion integration build with and without this commit, and compare the total rows.
--features akita,field-inline,ntt-inline,trace --embed) at innerBase
This PR targets
main, and the commit applies to it without conflict. The figures above were measured on the recursion integration stack, not onmain.