ハードウェアウォレットのプロトコルを話したい
- 動機
趣味でハードウェアウォレット買って遊びたいけど買うだけの余裕がないので、適当にハードウェアウォレットのプロトコルを喋るやつを作って MetaMask と連携させてみたい
— odan (@odan3240) July 6, 2020
- MetaMask が対応しているハードウェアウォレットは Ledger と Trezor
- https://github.com/MetaMask/eth-ledger-bridge-keyring
- https://github.com/MetaMask/eth-trezor-keyring
- eth-keyring-controller で制御される
- https://github.com/MetaMask/eth-ledger-bridge-keyring
- https://github.com/MetaMask/eth-trezor-keyring
- trezor-connect に依存してる
- trezor は bridge を native アプリとして入れるタイプ
- https://github.com/trezor/connect/blob/1b194882aec96d0744b96e340e549f60a7041b41/src/js/iframe/builder.js#L45
settings.iframeSrc
の iframe を作って、そこに PostMessage している
- 結局どちらも hack 的なことは難しそう
- そもそも bridge を偽装するのはどうなんだ?
- bridge 先を UI から変更できるとすると、詐欺が増えそう
- 仮想 USB 的なのを作ってハードウェアウォレットに偽装する方法
- USB のデバイスがちゃんとしたハードウェアウォレットか検証しているだろうし難しい
- fork して任意の keyring を追加する方法が良さそうか
- そもそも bridge を偽装するのはどうなんだ?