Skip to content

feat(zcash): Orchard shielded transaction protocol#99

Closed
BitHighlander wants to merge 2 commits intomasterfrom
feat/zcash-orchard
Closed

feat(zcash): Orchard shielded transaction protocol#99
BitHighlander wants to merge 2 commits intomasterfrom
feat/zcash-orchard

Conversation

@BitHighlander
Copy link
Collaborator

Summary

  • PCZT streaming protocol: ZcashSignPCZTZcashPCZTActionZcashSignedPCZT
  • Orchard FVK derivation: ZcashGetOrchardFVKZcashOrchardFVK
  • Transparent shielding: ZcashTransparentInputZcashTransparentSig
  • Wire IDs 1300-1307
  • nanopb options for all fields (digests 32B, actions, signatures)
  • Added messages-zcash.proto to package build scripts

Multi-phase protocol for Zcash Orchard shielded transactions:

  1. Session init with amount/fee confirmation
  2. Orchard action streaming with on-device digest verification
  3. Optional transparent input signing with per-input confirmation

Files

  • messages-zcash.proto — new file (150 lines, full protocol)
  • messages-zcash.options — nanopb limits (new file)
  • messages.proto — wire ID registration (1300-1307)
  • package.json — build script updated

Firmware dependency

Unblocks keepkey/keepkey-firmware Zcash Orchard support (7.14.0)

Test plan

  • protoc compiles cleanly
  • npm run build succeeds and emits Zcash types
  • Wire IDs 1300-1307 don't conflict (between Mayachain 1205 and TRON 1400)
  • All bytes/string fields have nanopb bounds

- PCZT streaming protocol: ZcashSignPCZT, ZcashPCZTAction, ZcashPCZTActionAck
- Orchard FVK: ZcashGetOrchardFVK, ZcashOrchardFVK
- Transparent shielding: ZcashTransparentInput, ZcashTransparentSig
- Wire IDs 1300-1307
- nanopb options for all fields

Multi-phase protocol: session init → action streaming → transparent signing.
Supports on-device Orchard digest verification via sub-digest fields.
@BitHighlander
Copy link
Collaborator Author

Superseded by combined PR #100 for simpler review and merge.

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.

1 participant