Skip to content

Minimize orchard fork: move voting-only code out, revert unnecessary changes#12

Merged
czarcas7ic merged 5 commits into
adam/sean-comment-round-1from
adam/minimize-orchard-fork
Apr 10, 2026
Merged

Minimize orchard fork: move voting-only code out, revert unnecessary changes#12
czarcas7ic merged 5 commits into
adam/sean-comment-round-1from
adam/minimize-orchard-fork

Conversation

@czarcas7ic

@czarcas7ic czarcas7ic commented Apr 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Move MulChip/MulInstruction and prove_spend_authority out of the orchard fork into voting-circuits, where their only consumers live
  • Revert dev profile tweaks (opt-level, debug) to match upstream v0.11.0
  • Tighten 15 unused pub(crate)pub visibility widenings back to pub(crate) (constants, keys, nullifier, tree, spec utilities)
  • Remove circuit/README.md (documented voting-circuits gadgets, not orchard internals)
  • Add UPSTREAM.md documenting every remaining fork change that needs to be upstreamed to zcash/orchard before the fork can be deleted

Test plan

  • cargo test --workspace passes after each commit (125 tests, 0 failures)
  • Verified fork against raw zcash/orchard v0.11.0 tag — remaining diff is only necessary visibility widenings and structural additions

czarcas7ic added a commit that referenced this pull request Apr 10, 2026
Mark P2 action items 1-4 and Tier 3 queue items 8-12 as done,
referencing #12. Update executive summary,
verification checklist, and last-updated timestamp.
…ting-circuits

These types are voting-circuits helpers with no consumers inside
orchard itself. Moving them shrinks the fork diff vs upstream v0.11.0.
…-circuits

Revert orchard/src/circuit.rs back to the upstream inline
[alpha] SpendAuthG + ak_P block, and move the extracted
prove_spend_authority() function into voting-circuits where its only
consumers live (delegation and vote-proof circuits).
Revert [profile.dev] opt-level and [profile.release/bench] debug
settings to match upstream zcash/orchard v0.11.0.
…ate)

Revert visibility widenings that voting-circuits does not import:
T_Q, T_P, L_ORCHARD_SCALAR, L_VALUE, NullifierDerivingKey::{prf_nf,
to_bytes, from_bytes}, CommitIvkRandomness::{to_bytes, from_bytes},
Nullifier::dummy, Anchor::inner, value_commit_orchard, lebs2ip,
lebs2ip_field, i2lebsp. Also remove circuit/README.md which documented
voting-circuits gadgets, not orchard internals.
Comprehensive checklist of visibility widenings and structural
additions that need to be upstreamed to zcash/orchard before the
fork can be removed entirely.
@czarcas7ic czarcas7ic force-pushed the adam/minimize-orchard-fork branch from b0e2d4e to 6f2f32d Compare April 10, 2026 19:46
@czarcas7ic czarcas7ic marked this pull request as ready for review April 10, 2026 20:29
@czarcas7ic czarcas7ic merged commit e2e4b02 into adam/sean-comment-round-1 Apr 10, 2026
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