Conversation
GKR computes the next round message from folded values in a small local buffer. PCS combines overlapping claims in paired lane windows, then computes the first sumcheck message from the complete weights. On eligible x86 targets, large extension NTTs reuse the base-field NTT through a coefficient view that requires no copy. The public API, protocol, and transcript order remain unchanged.
jsign
marked this pull request as ready for review
September 4, 2026 16:23
jsign
marked this pull request as draft
September 4, 2026 16:23
TomWambsgans
marked this pull request as ready for review
September 4, 2026 19:36
Merged
Collaborator
|
merged via #272, thanks! |
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.
The prover writes large temporary buffers and reads them again for sumcheck messages. This change combines those passes to reduce memory traffic.
The public API, protocol, security parameters, and transcript order remain unchanged.
The benchmark machine uses an AMD Ryzen 7 3800XT, with 8 physical cores and 16 logical threads. Linux reports 46 GiB of RAM. The release builds used native CPU instructions and the default thread count.
XMSS throughput increased by 13.1%, or 8.3% with no cooldown. SPHINCS throughput increased by 17.1%. Recursion time decreased by 11.6%.
The results are means after one warmup pass, with profiling disabled. Standard runs used three measured passes and a two-second cooldown. The sustained XMSS run used five measured passes and
--cooldown 0. Leaf benchmarks used--log-inv-rate 1. Recursion used--log-inv-rate 2and excluded leaf proof construction from the measured time.All 368 tests passed with
ZK_ALLOC_POISON=1 cargo testall. This suite includes the Python verifier and recursive aggregation tests. The additional statement and hint tampering tests passed. Clippy, rustdoc, formatting, and type checks for Apple ARM and AVX-512 also passed.No M4 machine was available for runtime benchmarks. These performance results apply only to the local Ryzen machine.