Skip to content

[#1924] Add zcash_voting dependency foundation#1934

Merged
greg0x merged 1 commit into
mainfrom
greg/voting-rust-foundation
May 11, 2026
Merged

[#1924] Add zcash_voting dependency foundation#1934
greg0x merged 1 commit into
mainfrom
greg/voting-rust-foundation

Conversation

@greg0x

@greg0x greg0x commented May 7, 2026

Copy link
Copy Markdown
Collaborator

Refs #1924.
Resolves MOB-1109

Associated issue: zodl-inc/zodl-android#2193.

Android analogue of zcash/zcash-swift-wallet-sdk#1699.

Summary

  • add released zcash_voting 0.5.3 to backend-lib with default features disabled
  • pin orchard to =0.13.1 with unstable-voting-circuits
  • add a narrow internal JNI linkage symbol, VotingRustBackend.computeShareNullifier, to prove dispatch into zcash_voting
  • place the Kotlin JNI holder in sdk-lib, matching the umbrella shielded-vote implementation
  • align computeShareNullifier with the umbrella signature: (voteCommitment, shareIndex, blind)
  • update Cargo.lock and CHANGELOG.md

Non-goals

  • no public SDK voting API
  • no voting database lifecycle
  • no wallet database access
  • no PIR or vote-tree-sync feature graph
  • no app-facing Kotlin voting backend surface

Testing

  • cargo fmt --manifest-path backend-lib/Cargo.toml --check
  • cargo check --manifest-path backend-lib/Cargo.toml --locked
  • ./gradlew :backend-lib:compileReleaseKotlin :sdk-lib:compileReleaseKotlin
  • git diff --check

@greg0x greg0x force-pushed the greg/voting-rust-foundation branch from 92c195f to bd94ebd Compare May 7, 2026 20:04
p0mvn
p0mvn previously approved these changes May 7, 2026

@p0mvn p0mvn left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM

Comment thread backend-lib/Cargo.lock
Comment thread backend-lib/Cargo.lock
Bring the Android Rust backend onto the released zcash_voting dependency line needed for shielded voting while keeping the initial JNI surface intentionally narrow.

The exposed VotingRustBackend.computeShareNullifier symbol is a pure linkage check over caller-supplied bytes. It proves Android can resolve, link, and dispatch into zcash_voting without adding wallet database access, voting database lifecycle, PIR or tree-sync networking, or a public SDK voting API.

orchard is pinned to =0.13.1 with the unstable-voting-circuits feature enabled, matching the Swift foundation split shape. No fork URLs or patch entries are introduced.

Document voting dependency sources

Rephrase voting dependency comments
@greg0x greg0x force-pushed the greg/voting-rust-foundation branch from 75a95d7 to 350e2b1 Compare May 10, 2026 23:29
Comment thread backend-lib/Cargo.toml
@greg0x greg0x merged commit 88a1172 into main May 11, 2026
15 checks passed
@greg0x greg0x deleted the greg/voting-rust-foundation branch May 11, 2026 09:33
@linear

linear Bot commented Jun 1, 2026

Copy link
Copy Markdown

MOB-1109

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.

3 participants