New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trezor Support #1491

Open
matheusd opened this Issue Jun 25, 2018 · 10 comments

Comments

Projects
None yet
5 participants
@matheusd
Member

matheusd commented Jun 25, 2018

Meta issue for keeping track of work needed to integrate trezor. I'll try to do some of the required work on separate PRs without directly referencing trezor so that we can start integrating in stages, instead of doing only a single very large PR at the end. Even so, it's likely that some of the PRs will be pretty big.

Still subject to a lot of change at the moment. Order of execution is not fixed.

Proof of concept stage (code)

  • Generate address
  • Sign Tx
  • Obtain trezor masterpubkey
  • Pin operations (enable/disable/enter) 5b4887b
  • Support use passphrase to encrypt trezor wallet 8c09c07
  • Sign and Verify messages 7f95884
  • Mnemonic operations (clear/recover) 42fd1ca
  • Full demo support 0eb6c4c
  • Mainnet tests

Basic decrediton integration

  • Upstream mainnet coin info to trezor firmwares
  • Detect and react to trezor events (trezor connected/disconnected)
  • Import wallet from trezor screen (wallet creation)
  • Change instances of passphrase modal to use trezor confirmation
  • Change or disable unsupported features (message signing/verification, tickets, etc)
  • Correctly support stealing the device connection for stuck devices

Advanced decrediton integration (not everything will be feasible at this moment)

  • Support signing tickets (requires ability to import scripts on watch only wallets)
  • Support multiple accounts (requires ability to import root xpub instead of account xpub)
  • Support trezor passphrase input
  • Support reset and reseed trezor directly
  • Support importing trezor native seed as decred seed (might require separate tooling done here)
  • Implement trezor-core changes to support decred in the model T firmware
@linnutee

This comment has been minimized.

Member

linnutee commented Jun 26, 2018

Here's the updated DCR symbol generated for Trezors home screen.
Also included the complete latest updated logo and symbol package, which can be used in Trezor's various web instances where needed.

dcr - trezor - homescreens.zip

Decred - Logo Package.zip

@Grum1in

This comment has been minimized.

Grum1in commented Aug 10, 2018

So, Do you do that anybody can buy tickets via Trezor?

@alexlyp

This comment has been minimized.

Member

alexlyp commented Aug 10, 2018

Not yet.

@matheusd

This comment has been minimized.

Member

matheusd commented Aug 16, 2018

Ticket purchasing Proof of Concept:

Firmware changes: trezor/trezor-mcu@master...matheusd:ticket-poc
Wallet changes: decred/dcrwallet@master...matheusd:trezor-tickets-poc
Client changes: https://github.com/matheusd/trezor-decred-poc/compare/ticket-poc

Rough outline:

  • Trezor firmware needs to be updated to recognize and process decred ticket outputs
  • Trezor.js needs to accept decred_tree input metadata
  • Dcrwallet grpc needs to allow import of scripts
  • Dcrwallet grpc needs new endpoint that generates unsigned split/ticket txs (dcrwallet issue and tentative PR)
  • Decrediton needs to be updated to tie both ends
@prusnak

This comment has been minimized.

prusnak commented Oct 19, 2018

@matheusd Can you summarize what is the current state of things? This issue hasn't been updated for 4 months.

@matheusd

This comment has been minimized.

Member

matheusd commented Oct 19, 2018

Waiting for the release of the official firmware so that we can test & merge the PRs for supporting trezor in decrediton:

decred/dcrwallet#1189
#1547

@matheusd

This comment has been minimized.

Member

matheusd commented Oct 19, 2018

By "official firmware", I mean the model one firmware with trezor/trezor-crypto#167 applied.

@prusnak

This comment has been minimized.

prusnak commented Oct 19, 2018

You don't need to wait for the official firmware. Emulator works just fine for both T1 and T2; plus is ready instantly. Anyway, the current plan is to release the firmware update (both for T1 and T2) on 29th of October.

Thanks for the update!

@matheusd

This comment has been minimized.

Member

matheusd commented Oct 19, 2018

Yes, I have performed all tests in the emulator (and on the physical model one I have). It's just that other developers aren't so keen on setting up the whole trezor stack to build a custom emulator/firmware to verify everything.

Since I have your attention here...

  1. The latest 1.7.0 tag in trezor-mcu does not seem to include the latest trezor-crypto (with the fix in trezor/trezor-crypto#167)
  2. Any chance we can setup a verification program in trezor for coin developers (not just decred but any and all coins)? Something like, a forum/email list/whatever with early access to the proposed firmware a week before the actual release so we can verify everything is in order and sync up any marketing efforts?
@prusnak

This comment has been minimized.

prusnak commented Oct 19, 2018

  1. the next firmware will be 1.7.1, yet to be tagged
  2. we'll think about it
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment