trezor-firmware icon indicating copy to clipboard operation
trezor-firmware copied to clipboard

Zcash shielded transactions

Open krnak opened this issue 4 years ago • 2 comments

Orchard shielded transactions for Trezor T.

work in progress . you can use this PR for tracking my activity

Links

ZFND grant documentation milestone M.1 report milestone M.2 report

Orchard addresses and keys

  • [x] orchard addresses
  • [x] unified addresses
  • [x] viewing keys export
  • [x] layouts
  • [x] ZIP-32 support Connectivity:
  • [x] trezorlib.zcash module
  • [x] trezorctl zcash commands
  • [ ] Connect support Tests:
  • [x] unit tests
  • [x] tests on real device
  • [x] reviewed
  • [ ] typing

Orchard transactions

  • [x] v5 transaction format
  • [x] signing workflow
  • [x] orchard inputs and outputs
  • [x] ZIP-244 (txid and sighash) implementation
  • [x] layouts
  • [ ] graphically distinguish transparent and orchard outputs
  • [x] mixed transactions (transparent + orchard) Connectivity:
  • [x] python bridge to orchard crate (pyorchard) e.i. the prover is callable from python
  • [x] trezorlib.zcash module (raw version)
  • [ ] trezorctl zcash commands
  • [ ] Connect support Tests:
  • [ ] unit tests
  • [ ] tests on real device
  • [ ] typing
  • [ ] reviewed

Zcash crates

  • [x] librustzcash https://github.com/zcash/librustzcash/pull/450
  • [x] librustzcash https://github.com/zcash/librustzcash/pull/446
  • [x] pasta_curves https://github.com/zcash/pasta_curves/pull/4
  • [x] reddsa https://github.com/ZcashFoundation/reddsa/pull/11
  • [ ] orchard https://github.com/zcash/orchard/pull/309
  • [x] orchard https://github.com/zcash/orchard/issues/297
  • [ ] orchard https://github.com/zcash/orchard/issues/287
  • [x] orchard https://github.com/zcash/orchard/pull/299

Firmware team

  • [ ] reserve more memory for Zcash app
  • [ ] integrate Sinsemilla table
  • [x] ~check Rust allocator correctness~
  • [ ] implementation review

Documentation

krnak avatar Oct 12 '21 11:10 krnak

I request a first quick review to make sure that the style of my code is correct and that I use other modules correctly.

Please, focus on:

common/protob/messages-zcash.proto
core/src/apps/zcash/
core/embed/rust/
core/tests/
python/src/trezorlib

and don't care about diagnostic machinary like

core/embed/rust/src/zcash/diag.rs

and PanicInfo printing in

core/embed/rust/src/lib.rs

Also don't care about external crates.

krnak avatar Nov 24 '21 10:11 krnak

And I accidentally merged some ethereum end vendor related commits. So ignore them too.

krnak avatar Nov 24 '21 11:11 krnak

replacing this by #2472

krnak avatar Aug 26 '22 20:08 krnak