Pin qr_orchard protocol API#94
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 84afbc64ac
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| continue; | ||
| } | ||
| let note = Note::from_parts(recipient, value, rho, rseed.unwrap()); | ||
| let note = Note::from_parts(recipient, value, rho, rseed.unwrap(), NoteVersion::DEFAULT); |
There was a problem hiding this comment.
Use V3 notes in the delegation benchmark
When cargo bench runs this helper, the notes are passed into build_delegation_bundle(...).unwrap() in the same file; in the pinned qr_orchard revision NoteVersion::DEFAULT is still V2, while the builder now rejects every non-V3 real note via UnsupportedNoteVersion. The benchmark therefore panics before measuring keygen/proving; construct these benchmark inputs with NoteVersion::V3 instead.
Useful? React with 👍 / 👎.
| } | ||
| for (index, input) in real_notes.iter().enumerate() { | ||
| let note_version = input.note.version(); | ||
| if note_version != DELEGATION_NOTE_VERSION { |
There was a problem hiding this comment.
Enforce V3 where proofs are verified
If consumers rely on the new Ironwood/V3-only requirement for accepted delegation proofs, this builder-side check is not sufficient: the verifier never sees note.version(), and the circuit still treats rcm as a private opening of NoteCommit, so a prover using a fork/alternate constructor can produce a valid proof for a legacy V2 note commitment. The version or V3 rcm derivation needs to be enforced by the circuit or by an authenticated verifier-side root/policy, not only by the honest builder path.
Useful? React with 👍 / 👎.
…ment Align qr_orchard dependency
Move the orchard pin from cab7d78 to the head of zcash/orchard#510 (dev/tx-id: the v6 / Ironwood TX-id + Auth-ID work). That branch was rebased with public-API renames, so this is a source port, not just a rev bump: - Note::new reordered to (.., version, rng); swap the two args at every call site. - RandomSeed::rcm -> rcm_v2 (the V2 derivation; qr_rcm -> rcm_v3). - NoteVersion::DEFAULT removed (it was = V2); replace with V2, except real_proof_roundtrip's real delegated note, which must be V3 (DELEGATION_NOTE_VERSION) — that test was latently red before this bump because it built a V2 note the builder rejects. The new orchard circuit Config rotates the delegation and vote-proof verifying keys (share-reveal unchanged); update both VK-fingerprint tripwires accordingly. Intentional VK rotation. Verified: cargo check --all-targets --all-features clean; 141/141 unit tests pass; all ignored delegation proving tests pass (happy_path, real_proof_roundtrip); all three VK fingerprint tripwires green.
Non-breaking orchard update; vote-proof and delegation verifying-key fingerprints are unchanged.
Non-breaking orchard update; vote-proof and delegation verifying-key fingerprints are unchanged.
Move the orchard dep from zcash/orchard 30c4ea27 (feat-ironwood) to valargroup/orchard adam/pczt-recompute-helpers (HEAD d05e3b41). That branch is 30c4ea27 plus one commit adding the pczt recompute module for omitted derived fields; it touches only src/pczt*, so no circuit/note APIs change here. Pinned by branch (not rev) so downstream crates that pin orchard by this same branch unify on a single orchard node: Cargo treats ?branch= and ?rev= as distinct sources even at the same commit, which would otherwise duplicate every orchard type across the dependency boundary. The rcm derivations were already version-tagged on this line (rcm -> rcm_v2, qr_rcm -> rcm_v3, upstream b18ce41); the rename is a pure value-preserving rename for V2 (same PrfExpand::ORCHARD_RCM body, same signature), and this crate's V2 callsite (delegation/circuit.rs rcm_scalar_for_note_parts) already calls rcm_v2. Build + tests green.
8f7f74e to
8ed4466
Compare
Pins orchard to Valar's qr_orchard protocol API revision and updates note construction call sites for the explicit note version API. The README and changelog now describe the forked dependency source.