{"action":"created","issue":{"url":"https://api.github.com/repos/monero-project/monero/issues/4810","repository_url":"https://api.github.com/repos/monero-project/monero","labels_url":"https://api.github.com/repos/monero-project/monero/issues/4810/labels{/name}","comments_url":"https://api.github.com/repos/monero-project/monero/issues/4810/comments","events_url":"https://api.github.com/repos/monero-project/monero/issues/4810/events","html_url":"https://github.com/monero-project/monero/issues/4810","id":377812771,"node_id":"MDU6SXNzdWUzNzc4MTI3NzE=","number":4810,"title":"[WIP] Trezor integration roadmap","user":{"login":"ph4r05","id":1052761,"node_id":"MDQ6VXNlcjEwNTI3NjE=","avatar_url":"https://avatars2.githubusercontent.com/u/1052761?v=4","gravatar_id":"","url":"https://api.github.com/users/ph4r05","html_url":"https://github.com/ph4r05","followers_url":"https://api.github.com/users/ph4r05/followers","following_url":"https://api.github.com/users/ph4r05/following{/other_user}","gists_url":"https://api.github.com/users/ph4r05/gists{/gist_id}","starred_url":"https://api.github.com/users/ph4r05/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ph4r05/subscriptions","organizations_url":"https://api.github.com/users/ph4r05/orgs","repos_url":"https://api.github.com/users/ph4r05/repos","events_url":"https://api.github.com/users/ph4r05/events{/privacy}","received_events_url":"https://api.github.com/users/ph4r05/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":29,"created_at":"2018-11-06T11:51:25Z","updated_at":"2019-02-27T11:43:18Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"This issue aims to track progress and road map of the further TREZOR integration. Builds on already merged PR https://github.com/monero-project/monero/pull/4241. Issue can also collect feedback / feature requests for Trezor.\r\n\r\n### Merged:\r\n\r\n#### https://github.com/monero-project/monero/pull/4241 TREZOR: initial integration proposal\r\n- First PR adding Trezor support.\r\n\r\n#### https://github.com/monero-project/monero/pull/4824 device/trezor: webusb transport added, cmake fixes\r\n- [x] Add compile time option to exclude Trezor from Monero build.\r\n- [x] CMake refactoring, graceful Trezor support disabling when protobuf fails or other dependency fails. \r\n- [x] Add WebUSB device transport. Depends on libusb, enables direct connection to Trezor without Bridge.\r\n- [x] Simplify message protocol, prepare for testing (callback on Trezor events, e.g., button request, pin entry request)\r\n\r\n#### https://github.com/monero-project/monero/pull/4839 device/trezor: trezor improvements\r\n- [x] Automatic key images sync after wallet recovery from Trezor (required to perform after wallet restore for already used wallets, i.e., wallet spent something before restore)\r\n- [x] Passphrase entry on host (so far only device-based passphrase entry is supported)\r\n- [x] Enable to use multiple wallets derived from the primary device seed. I.e., command line argument `--hw-device-wallet-code` for [BIP-44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki) / [SLIP-10](https://github.com/satoshilabs/slips/blob/master/slip-0010.md) wallet derivation algorithm. Enables to maintain multiple independent Monero wallet with one device. \r\n- [x] UDP transport disabled by default (on production)\r\n\r\n### In PR:\r\n\r\n#### #4889 wallet: rescan bc with preserving key images\r\n- [x] Spent check with untrusted node. Key image sync, key image import and rescan_spent can be performed with untrusted node now using new command (idea: rescan blockchain for transactions while preserving previous key images)\r\n\r\n#### #4945 Build: protobuf fixes for docker, cross-compilation\r\n- [x] Docker build fixes\r\n- [x] Protobuf dependency fixes, compilation test in the cmake (to make sure the real compilation passes)\r\n- [x] Dependencies for GUI compilation\r\n\r\n#### #4977 device/trezor: integration tests\r\n- [x] Add debug link (*!!only in testing mode!! Not compiled in release mode. Production Trezor firmware does not support debug link*. Debug connection to Trezor, automatically press confirm button in emulator during test cases)\r\n  - [x] wipe + init + load seed\r\n- [x] Add transaction signing test cases\r\n  - [x] Various transaction scenarios for testing (# of UTXO, outputs, mixins, sub-addresses, payment_id)\r\n  - [x] Support code to facilitate Trezor testing (scenarios, chain generation, RCT transaction testing)\r\n  - [x] Verification of Trezor signed transaction (hashes, serialization, rangeproof, MLSAG) \r\n\r\n### Work in progress:\r\n\r\n- [x] wallet API for transaction cold signing, KI sync\r\n- [ ] get_tx_key functionality \r\n- [x] tx_proof\r\n- [ ] live refresh (compute KI on the fly during foreground refresh, eliminates need for key image sync)\r\n\r\n#### GUI wallet\r\n- [ ] Check if wallet API enables all Trezor required features\r\n- [ ] Passphrase entry for GUI wallet\r\n\r\nStatus: work in progress, PR pending...\r\n\r\n### ToDo\r\n\r\n#### Web wallet, mymonero\r\n- [ ] Pick and implement viable device transport method\r\n- [ ] Transpile Trezor related code\r\n- [ ] Implement missing Trezor related code\r\n\r\n### Backlog, not on the main roadmap:\r\nI have a design done for the following, however, implementation is not planned at the moment. I can help/supervise if somebody wants to implement this. It's not hard, just takes time which I don't have right now:\r\n\r\n- [ ] spend_proof\r\n- [ ] reserve_proof\r\n\r\n#### Multisig\r\nThe multisig is half-designed and would require ETA 1-4 weeks of work. I am open to consultacy for volunteers :) "},"comment":{"url":"https://api.github.com/repos/monero-project/monero/issues/comments/467831068","html_url":"https://github.com/monero-project/monero/issues/4810#issuecomment-467831068","issue_url":"https://api.github.com/repos/monero-project/monero/issues/4810","id":467831068,"node_id":"MDEyOklzc3VlQ29tbWVudDQ2NzgzMTA2OA==","user":{"login":"ta32","id":26617779,"node_id":"MDQ6VXNlcjI2NjE3Nzc5","avatar_url":"https://avatars2.githubusercontent.com/u/26617779?v=4","gravatar_id":"","url":"https://api.github.com/users/ta32","html_url":"https://github.com/ta32","followers_url":"https://api.github.com/users/ta32/followers","following_url":"https://api.github.com/users/ta32/following{/other_user}","gists_url":"https://api.github.com/users/ta32/gists{/gist_id}","starred_url":"https://api.github.com/users/ta32/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ta32/subscriptions","organizations_url":"https://api.github.com/users/ta32/orgs","repos_url":"https://api.github.com/users/ta32/repos","events_url":"https://api.github.com/users/ta32/events{/privacy}","received_events_url":"https://api.github.com/users/ta32/received_events","type":"User","site_admin":false},"created_at":"2019-02-27T11:43:18Z","updated_at":"2019-02-27T11:43:18Z","author_association":"NONE","body":"> Can we make sure to have the Trezor GUI ready by then?\r\n@prusnak are you talking about the trezor web wallet?"}}
{"actor":{"display_login":"ta32"}}