Skip to content

zk-proofs: warn that the UltraHonk verifier accepts only non-ZK proofs - #158

Merged
stellar-triage-bot[bot] merged 2 commits into
mainfrom
fix/zk-ultrahonk-non-zk
Oct 21, 2026
Merged

stellar-triage-bot[bot] merged 2 commits into
mainfrom
fix/zk-ultrahonk-non-zk

Conversation

@kaankacar

Copy link
Copy Markdown
Contributor

The zk-proofs skill sends Noir users to rs-soroban-ultrahonk for on-chain verification. Its Noir example keeps age as a private input. The skill never says that this verifier accepts only non-ZK proofs.

The ultrahonk-soroban-verifier README says:

This verifier implements Barretenberg's non-zero-knowledge Keccak-transcript flavor. It provides no witness-hiding guarantee [...] Do not use it for privacy-sensitive circuits, and do not treat a private circuit input as secret merely because it is not a public input. UltraZKFlavor is not implemented.

ZK verification is still open in rs-soroban-ultrahonk#38. OpenZeppelin's confidential token (v0.8.0) uses this verifier and documents the same limit in its Zero-knowledge setting section.

Changes

  • Mark the Noir row in the toolchain table as non-ZK only.
  • Add a note to the Noir walkthrough. It points to Groth16 (for example Circom) for hidden inputs today.
  • Add a pitfall: a proof hides its inputs only if it is zero-knowledge.

The proving commands and the rest of the skill do not change. All new links return HTTP 200.

rs-soroban-ultrahonk implements the non-ZK UltraKeccak flavor. Its README says a proof gives no witness-hiding guarantee. The Noir walkthrough used a private age input without that warning.

- Mark the Noir row in the toolchain table as non-ZK only.
- Add a note to the Noir walkthrough.
- Add a pitfall about proofs that do not hide inputs.
@kaankacar
kaankacar requested a lite review from Copilot October 21, 2026 13:21
@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 13:37 UTC

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

Add an evaluation assertion covering the verifier’s non-ZK limitation and privacy-sensitive use.

1 open issue
What changed in this PR

Clarifies that the Noir UltraHonk verifier supports non-ZK proofs only and should not be used for privacy-sensitive inputs.

Changes:

  • Marks the Noir toolchain as non-ZK only.
  • Adds privacy warnings and recommends Groth16 for hidden inputs.
  • Documents the witness-hiding limitation.
File Summary
skills/​zk-proofs/​SKILL.md Documents UltraHonk’s non-ZK limitation and privacy implications.

Review effort: Lite

Comment thread skills/zk-proofs/SKILL.md
@stellar-triage-bot

Copy link
Copy Markdown
Contributor

🤖 Automated message from the Stellar Triage Bot.

Picked this up. Reviewing the claims and Copilot's eval point before I merge.

evals/README.md asks to update affected scenarios in the same PR when a skill fact changes.

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 referenced verifier now requires Protocol 28+, conflicting with the documented Protocol 26+ requirement.

1 open issue
1 resolved since last review

Review effort: Lite

Comment thread skills/zk-proofs/SKILL.md
@stellar-triage-bot

Copy link
Copy Markdown
Contributor

🤖 Automated message from the Stellar Triage Bot.

Verified at 61fe468:

  • The non-ZK wording matches the verifier README (UltraKeccakFlavor, no witness-hiding guarantee).
  • rs-soroban-ultrahonk#38 (ZK verification) is still open.
  • OpenZeppelin v0.8.0 documents the same limit in "Zero-knowledge setting".
  • The eval assertion covers Copilot's first point. The scenario JSON is valid.
  • All checks are green, including preview.

Copilot's Protocol 28 point concerns older text. It is tracked in #159. Merging now.

@stellar-triage-bot
stellar-triage-bot Bot merged commit bcbde6d into main Oct 21, 2026
8 checks passed
@stellar-triage-bot
stellar-triage-bot Bot deleted the fix/zk-ultrahonk-non-zk branch October 21, 2026 13:37
@stellar-triage-bot

Copy link
Copy Markdown
Contributor

🤖 Automated message from the Stellar Triage Bot.

Merged. The skill now warns that the UltraHonk verifier accepts only non-ZK proofs. The Protocol 28 follow-up is #159.

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.

2 participants