Skip to content

zk-proofs: UltraHonk verifier needs Protocol 28+, pin its proof tooling - #160

Merged
stellar-triage-bot[bot] merged 2 commits into
mainfrom
issue-agent/159-ultrahonk-protocol-28
Oct 21, 2026
Merged

stellar-triage-bot[bot] merged 2 commits into
mainfrom
issue-agent/159-ultrahonk-protocol-28

Conversation

@stellar-triage-bot

Copy link
Copy Markdown
Contributor

🤖 Automated message from the Stellar Triage Bot.

The zk-proofs Noir walkthrough said the rs-soroban-ultrahonk verifier needs Protocol 26+. The 0.1.0 release builds on soroban-sdk ^28, and its README says contracts need Protocol 28+.

Changes:

  • Protocol floor for this verifier is now 28+ in the summary, table, walkthrough heading and option list. The CAP-0080 rows keep Protocol 26.
  • "Last verified" is now Protocol 29 (October 2026).
  • The proving snippet now pins Nargo 1.0.0-beta.9 + bb 0.87.0. It passes --oracle_hash keccak, adds bb write_vk, and fixes the -o and -i paths. The old snippet used bb's Poseidon2 default and had no vk step.
  • The audit sentence now names the OpenZeppelin report and notes that the audited commit is not the release commit.
  • Eval scenario 02 matches the new text.

Sources: the verifier README, crates.io deps, and the bb 0.87.0 and Nargo 1.0.0-beta.9 CLI source. No site code changed.

Closes #159

The rs-soroban-ultrahonk 0.1.0 release builds on soroban-sdk 28, so contracts using it need Protocol 28, not the CAP-0080 floor of 26. Pin the Noir walkthrough to Nargo 1.0.0-beta.9 + bb 0.87.0 with the Keccak oracle, add the missing write_vk step, note the OpenZeppelin audit, and update the eval scenario.
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-10-21 14:26 UTC

@kaankacar
kaankacar requested a lite review from Copilot October 21, 2026 13:52
@stellar-triage-bot

Copy link
Copy Markdown
Contributor Author

🤖 Automated message from the Stellar Triage Bot.

Picked this up. I am reviewing the claims and will wait for Copilot's review before I merge.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The proof commands and evaluation scenario still omit the required --disable_zk non-ZK flavor selection.

2 open issues
What changed in this PR

Updates the zk-proofs guidance and evaluation scenario for Protocol 28+ UltraHonk verification.

Changes:

  • Updates protocol, tooling, and audit guidance.
  • Pins Noir and Barretenberg versions with revised proof commands.
  • Aligns the Noir evaluation scenario.
File Summary
skills/​zk-proofs/​SKILL.md Updates verifier requirements, tooling, audit notes, and walkthrough commands.
evals/​scenarios/​zk-proofs/​02-noir-onchain.json Aligns evaluation expectations with the revised guidance.

Review effort: Lite

"States that Noir's UltraHonk/BN254 output verifies on-chain via the community rs-soroban-ultrahonk verifier, and that it needs Protocol 26+ (CAP-0074 base ops plus CAP-0080 MSM/Fr host functions)",
"Flags the verifier's maturity (young, community-maintained — check audit status before mainnet)",
"States that Noir's UltraHonk/BN254 output verifies on-chain via the community rs-soroban-ultrahonk verifier, which uses CAP-0074 base ops plus CAP-0080 MSM/Fr host functions, and that its current release (soroban-sdk 28) needs Protocol 28+, not just Protocol 26+",
"Generates proofs with the verifier's pinned tooling (Nargo 1.0.0-beta.9 + Barretenberg 0.87.0) and passes --oracle_hash keccak to bb, without --zk",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

🤖 Automated message from the Stellar Triage Bot.

Not applied. --disable_zk does not exist in bb 0.87.0, the version this verifier pins.

  • In 0.87.0, zk defaults to false and --zk is the opt-in flag (bb/cli.cpp, api/api.hpp at v0.87.0).
  • Upstream's circuits/scripts/build_all.sh runs bb 0.87.0 with --oracle_hash keccak and no ZK flag.
  • --disable_zk arrives in bb 1.0.0, where ZK becomes the default.

Your concern is valid for bb 1.x. cac6404 adds a warning to stay on 0.87.0 and says why.

Comment thread skills/zk-proofs/SKILL.md
Comment on lines +185 to +187
bb prove --scheme ultra_honk --oracle_hash keccak -b target/age_check.json -w target/witness.gz -o target
bb write_vk --scheme ultra_honk --oracle_hash keccak -b target/age_check.json -o target
bb verify --scheme ultra_honk --oracle_hash keccak -k target/vk -p target/proof -i target/public_inputs # off-chain check

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

🤖 Automated message from the Stellar Triage Bot.

Not applied. --disable_zk does not exist in bb 0.87.0, the version this verifier pins.

  • In 0.87.0, zk defaults to false and --zk is the opt-in flag (bb/cli.cpp, api/api.hpp at v0.87.0).
  • Upstream's circuits/scripts/build_all.sh runs bb 0.87.0 with --oracle_hash keccak and no ZK flag.
  • --disable_zk arrives in bb 1.0.0, where ZK becomes the default.

Your concern is valid for bb 1.x. cac6404 adds a warning to stay on 0.87.0 and says why.

@stellar-triage-bot

Copy link
Copy Markdown
Contributor Author

🤖 Automated message from the Stellar Triage Bot.

Verified at cac6404. Merging.

  • Protocol 28+ floor: the verifier README and the crates.io deps of 0.1.0 (soroban-sdk ^28.0.0) confirm it.
  • bb commands: the flags, the -o directory outputs and -i public_inputs match bb 0.87.0 cli.cpp and upstream build_all.sh.
  • nargo execute witness compiles the program and writes target/witness.gz in 1.0.0-beta.9.
  • Copilot's --disable_zk point: rejected in the thread. That flag only exists from bb 1.0.0, and the new warning covers 1.x.
  • Audit sentence: matches the README's audit section.
  • Mainnet and Testnet run Protocol 29.
  • preview is green. No site code changed.

@stellar-triage-bot
stellar-triage-bot Bot merged commit e20f352 into main Oct 21, 2026
7 checks passed
@stellar-triage-bot
stellar-triage-bot Bot deleted the issue-agent/159-ultrahonk-protocol-28 branch October 21, 2026 14:26
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.

zk-proofs: UltraHonk verifier now needs Protocol 28+, not 26+

1 participant