Skip to content

Integrate staged WHIR shared-mask joint openings - #525

Draft
zkfriendly wants to merge 3 commits into
mainfrom
zkfr/integrate-shared-mask-opening
Draft

zkfriendly wants to merge 3 commits into
mainfrom
zkfr/integrate-shared-mask-opening

Conversation

@zkfriendly

@zkfriendly zkfriendly commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

This integrates WHIR #284 while preserving ProveKit's sequential Noir and Mavros witness flow. WHIR is pinned to 5c1fccc909f76566f9c74f2f8f1c091628567c95.

The first commitment passes None; the second passes Some(&mut commitment_1) after application challenges. WHIR owns the shared mask state and derives the combined configuration. ProveKit retains two commitment handles and its existing prove_pair and verify_pair calls.

The verifier mirrors both staged commitments around the existing outer blinding commitment and application challenges. Final-claim checks, SPARK selector coordinates, and transcript completion remain unchanged.

Production integration changes total +33/-14: 47 changed lines across three files. This meets the under-50-line production criterion. Fixtures and tests change another 54 lines, and dependency pins change four lines. The complete diff totals +73/-32 across seven files.

Validation:

  • Six joint-opening tests pass, including challenge-dependent witnesses and genuine extension-field claims.
  • Twenty-six BN254 and Goldilocks roundtrip and rejection tests pass.
  • All six compiler parameter tests pass, including the previously failing Goldilocks case.
  • Backend and compiler checks pass with all features and test targets.
  • The final Git dependency passes the locked backend check and joint-opening tests.
  • Formatting and whitespace checks pass.
  • Clippy completes with seven existing warnings in unchanged common arithmetic files. Strict Clippy remains blocked by those warnings.

Full Noir and Mavros frontend proof runs were not performed. Public-input binding changes remain separate in #524. No documentation files or reports are included.

@vercel

vercel Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
docs-provekit-org Ready Ready Preview Nov 9, 2026 10:48am UTC

Request Review

@github-actions

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

CSP benchmarks

Metric Value
Workflow status [PASS] success
Commit 6bd12478fbf4
Run #42603922183
Circuits benchmarked 21
Iterations averaged per circuit 3

Prover time, peak RSS, peak heap, and verifier time are arithmetic means across the iterations. Peak heap comes from the largest peak memory entry in provekit-cli prove's tracing output; peak RSS is reported by /usr/bin/time -v (max-resident-set-size).

Each metric cell shows the current value followed by the percentage delta against the latest successful main run #41786286870. (new) marks circuits absent from the baseline.

Results
Circuit Constraints Witnesses Prover time Peak RSS Peak heap Verifier time Proof size PKP size
ecdsa_p256 143,321 (±0.0%) 258,215 (±0.0%) 1.46 s (+2.6%) 274 MB (+1.9%) 233 MB (+0.4%) 31.83 s (+28836.4%) 430 KB (-3.9%) 831 KB (±0.0%)
keccak_1024 788,814 (±0.0%) 1,490,812 (±0.0%) 4.07 s (+2.7%) 1.03 GB (-2.2%) 1.03 GB (-1.8%) 192.37 s (+39977.1%) 513 KB (+3.9%) 6.01 MB (±0.0%)
keccak_128 157,522 (±0.0%) 304,529 (±0.0%) 1.01 s (+4.5%) 290 MB (+3.6%) 249 MB (+0.4%) 41.81 s (+34741.7%) 430 KB (-4.0%) 1.24 MB (±0.0%)
keccak_2048 1,507,374 (±0.0%) 2,840,532 (±0.0%) 7.78 s (+0.7%) 1.93 GB (-2.7%) 2.02 GB (-2.3%) 410.41 s (+44510.1%) 555 KB (+1.3%) 12.15 MB (±0.0%)
keccak_256 247,782 (±0.0%) 474,010 (±0.0%) 1.20 s (+3.4%) 339 MB (+1.9%) 304 MB (±0.0%) 42.72 s (+25031.4%) 433 KB (-3.5%) 1.89 MB (±0.0%)
keccak_512 428,126 (±0.0%) 812,944 (±0.0%) 2.15 s (+3.5%) 594 MB (+1.6%) 550 MB (-1.4%) 85.72 s (+32041.0%) 455 KB (-2.9%) 3.25 MB (±0.0%)
poseidon2_12 479 (±0.0%) 563 (±0.0%) 50 ms (+15.5%) 18.54 MB (+34.6%) 8.14 MB (+95.4%) 160 ms (+1500.0%) 188 KB (-18.5%) 437 KB (±0.0%)
poseidon2_16 556 (±0.0%) 719 (±0.0%) 50 ms (+15.5%) 19.13 MB (+32.0%) 8.31 MB (+91.9%) 160 ms (+1500.0%) 190 KB (-16.8%) 530 KB (±0.0%)
poseidon2_2 231 (±0.0%) 278 (±0.0%) 47 ms (+16.8%) 17.46 MB (+33.7%) 7.42 MB (+115.5%) 80 ms (+700.0%) 188 KB (-16.4%) 108 KB (±0.0%)
poseidon2_4 529 (±0.0%) 535 (±0.0%) 40 ms (+33.3%) 17.96 MB (+33.7%) 7.61 MB (+109.4%) 150 ms (+1400.0%) 189 KB (-15.8%) 31.88 KB (-0.1%)
poseidon2_8 363 (±0.0%) 423 (±0.0%) 50 ms (+25.0%) 18.40 MB (+34.3%) 8.06 MB (+97.4%) 90 ms (+800.0%) 190 KB (-13.8%) 365 KB (±0.0%)
poseidon_12 504 (±0.0%) 524 (±0.0%) 50 ms (+25.0%) 19.29 MB (+35.5%) 8.36 MB (+95.8%) 160 ms (+1500.0%) 190 KB (-15.1%) 569 KB (±0.0%)
poseidon_16 609 (±0.0%) 633 (±0.0%) 60 ms (+20.0%) 19.26 MB (+27.8%) 9.20 MB (+86.7%) 160 ms (+700.0%) 190 KB (-15.7%) 717 KB (±0.0%)
poseidon_2 240 (±0.0%) 249 (±0.0%) 40 ms (+20.1%) 17.33 MB (+33.8%) 7.38 MB (+116.8%) 50 ms (+400.0%) 188 KB (-15.1%) 59.34 KB (-0.1%)
poseidon_4 297 (±0.0%) 309 (±0.0%) 50 ms (+25.0%) 18.05 MB (+29.8%) 8.00 MB (+98.8%) 90 ms (+800.0%) 188 KB (-16.3%) 333 KB (±0.0%)
poseidon_8 402 (±0.0%) 418 (±0.0%) 50 ms (+25.0%) 18.61 MB (+33.1%) 8.13 MB (+95.9%) 90 ms (+800.0%) 186 KB (-17.7%) 448 KB (±0.0%)
sha256_1024 196,913 (±0.0%) 339,721 (±0.0%) 1.12 s (+3.4%) 328 MB (+2.7%) 286 MB (±0.0%) 42.52 s (+23520.4%) 434 KB (-2.9%) 1.88 MB (-1.4%)
sha256_128 46,371 (±0.0%) 80,931 (±0.0%) 300 ms (+11.1%) 96.10 MB (+11.9%) 74.58 MB (+10.0%) 9.98 s (+19860.0%) 385 KB (+0.2%) 495 KB (-0.6%)
sha256_2048 345,372 (±0.0%) 612,681 (±0.0%) 2.13 s (+2.9%) 576 MB (+0.8%) 527 MB (-1.4%) 85.10 s (+26223.3%) 458 KB (-3.1%) 3.04 MB (-0.6%)
sha256_256 67,877 (±0.0%) 117,901 (±0.0%) 503 ms (+10.2%) 148 MB (+4.3%) 125 MB (+4.0%) 15.43 s (+21938.1%) 400 KB (+0.2%) 692 KB (-0.7%)
sha256_512 110,889 (±0.0%) 191,841 (±0.0%) 640 ms (+11.0%) 182 MB (+4.8%) 156 MB (+2.5%) 20.70 s (+20596.7%) 402 KB (+0.6%) 1.12 MB (+1.1%)

@zkfriendly zkfriendly changed the title Evaluate WHIR shared-mask opening integration Integrate staged WHIR shared-mask joint openings Nov 9, 2026

This branch was successfully deployed

1 active deployment
Preview — f904b079 Deployed Nov 9, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant