Skip to content

Implement Bulletproofs Inner Product Argument#3534

Closed
cronokirby wants to merge 18 commits into
mainfrom
ck/bulletproofs-ipa
Closed

Implement Bulletproofs Inner Product Argument#3534
cronokirby wants to merge 18 commits into
mainfrom
ck/bulletproofs-ipa

Conversation

@cronokirby
Copy link
Copy Markdown
Collaborator

Closes #3175.

This adds an impl of the inner product argument part of bulletproofs. Pretty happy with the testing strategy here, and the level of documentation.

I also changed the test field and group in the math crate to be larger, that way you can support random challenges without worrying about running into accidental collisions all the time. It's not large enough to be cryptographically secure, but still probably collision free.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 4, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
commonware-mcp 6f18a25 May 20 2026, 09:58 PM

@cronokirby cronokirby added the breaking-format This PR modifies codec and/or storage formats. label Apr 4, 2026
@cronokirby
Copy link
Copy Markdown
Collaborator Author

Spurious breaking-format because of additional conformance items, and because of changes to the test field.

@cronokirby cronokirby moved this to Ready for Review in Tracker Apr 6, 2026
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 6, 2026

Deploying monorepo with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6f18a25
Status: ✅  Deploy successful!
Preview URL: https://22764272.monorepo-eu0.pages.dev
Branch Preview URL: https://ck-bulletproofs-ipa.monorepo-eu0.pages.dev

View logs

@cronokirby cronokirby force-pushed the ck/bulletproofs-ipa branch 4 times, most recently from 5f3b08b to 95788d4 Compare April 14, 2026 23:59
@cronokirby cronokirby force-pushed the ck/bulletproofs-ipa branch from 95788d4 to 731b9ef Compare April 17, 2026 18:02
Comment thread cryptography/src/zk/bulletproofs/ipa.rs
@cronokirby cronokirby force-pushed the ck/bulletproofs-ipa branch 5 times, most recently from f12864c to 24b3290 Compare April 27, 2026 15:57
@cronokirby cronokirby force-pushed the ck/bulletproofs-ipa branch from 24b3290 to 4968a64 Compare May 1, 2026 22:30
@cronokirby cronokirby added breaking-format This PR modifies codec and/or storage formats. and removed breaking-format This PR modifies codec and/or storage formats. labels May 5, 2026
@cronokirby cronokirby force-pushed the ck/bulletproofs-ipa branch from 4968a64 to a6ae553 Compare May 5, 2026 22:24
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

Benchmark results

Tip

PASSED: No benchmark exceeded the regression threshold.

Benchmark comparison table
Benchmark Baseline (main) Current Delta Threshold Status
qmdb::merkleize/variant=any::unordered::fixed::mmr keys=10000 ch=false sync=false 1.555 ms 1.580 ms +1.63% 10.00% ✅ PASS
qmdb::merkleize/variant=current::ordered::fixed::mmb chunk=256 keys=10000 ch=true sync=false 3.044 ms 3.089 ms +1.48% 10.00% ✅ PASS

Baseline commit(s): 25bd84194fab

Comment thread cryptography/src/zk/bulletproofs/ipa.rs
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 7f1b27a. Configure here.

Comment thread cryptography/src/zk/bulletproofs/ipa.rs
@cronokirby cronokirby force-pushed the ck/bulletproofs-ipa branch 4 times, most recently from 6f18d5d to 1e0c3ea Compare May 12, 2026 21:32
@cronokirby cronokirby force-pushed the ck/bulletproofs-ipa branch from 1e0c3ea to d71e1ea Compare May 13, 2026 22:16
@cronokirby cronokirby force-pushed the ck/bulletproofs-ipa branch 5 times, most recently from e0fbb68 to 0360341 Compare May 19, 2026 22:30
@cronokirby cronokirby force-pushed the ck/bulletproofs-ipa branch from 0360341 to 6f18a25 Compare May 20, 2026 21:57
@codecov
Copy link
Copy Markdown

codecov Bot commented May 20, 2026

Codecov Report

❌ Patch coverage is 94.48980% with 27 lines in your changes missing coverage. Please review.
✅ Project coverage is 95.74%. Comparing base (25bd841) to head (6f18a25).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
cryptography/src/zk/bulletproofs/ipa.rs 95.40% 15 Missing and 6 partials ⚠️
math/src/poly.rs 62.50% 0 Missing and 3 partials ⚠️
math/src/test.rs 88.00% 0 Missing and 3 partials ⚠️
@@            Coverage Diff             @@
##             main    #3534      +/-   ##
==========================================
- Coverage   95.74%   95.74%   -0.01%     
==========================================
  Files         473      474       +1     
  Lines      192555   193027     +472     
  Branches     4666     4687      +21     
==========================================
+ Hits       184361   184811     +450     
- Misses       6624     6639      +15     
- Partials     1570     1577       +7     
Files with missing lines Coverage Δ
cryptography/src/lib.rs 100.00% <ø> (ø)
cryptography/src/transcript.rs 95.27% <ø> (+0.10%) ⬆️
math/src/poly.rs 98.26% <62.50%> (-0.50%) ⬇️
math/src/test.rs 90.24% <88.00%> (+3.28%) ⬆️
cryptography/src/zk/bulletproofs/ipa.rs 95.40% <95.40%> (ø)

... and 6 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 25bd841...6f18a25. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@cronokirby cronokirby closed this May 21, 2026
@github-project-automation github-project-automation Bot moved this from Ready for Review to Done in Tracker May 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-format This PR modifies codec and/or storage formats.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Implement Bulletproofs++ IPA

1 participant