はじめまして。こんにちは。AndGoのハードウェア開発を行っている片山と申します。僕からはハードウェアウォレットなどハードウェアに関連した記事をご提供していきたいと考えています。
幼少の頃から機械の分解が大好きで,ここ1ヶ月で分解したものは,Jade,液晶ディスプレイ,M5Paper,モバイルバッテリー,ACアダプタなどです。皆様からも「〇〇を解析してほしい!」「○○の中身ってどうなっているの?」のようなリクエストがあれば是非お寄せいただきたいと思います。
今回は第1回目に相応しいTrezor Oneの中身を紐解いていきたいと思います。
ハードウェアを知ることで,本当にそのウォレットを安心して使ってよいのかが自身を持って判断出来るようになります。Trezorは御存知のとおりチェコのSatoshi Labs社が開発した代表的なハードウェアウォレットです。ソフトウェア・ハードウェアともにオープンソースとして公開されていますので,皆様と一緒に解析しきますのでお付き合いください。
Trezorのハードウェアに関する情報はGitHub(https://github.com/trezor/trezor-hardware)に公開されています。回路図だけでなく,電子回路基板の設計図や部品リストそして外装の形状まで公開されていますのでその気になれば,自分オリジナルのTrezorのクローンを作ることもできてしまいます。
早速GitHubリポジトリの中身を見ていきたいと思います。https://github.com/trezor/trezor-hardware から「electronics」→「trezor_one」と辿っていきます。様々なファイルが入っています。「*.sch」や「*.brd」がソフトウェアでいうソースコードのようなもので,これらはEagle(https://www.autodesk.co.jp/products/eagle/)というソフトウェアで開くことができます。
Eagleはオープンソースハードウェアの世界ではよく使われている電子回路基板設計ソフトウェアで,機能制限はありますが無料で使うことができます。さらに「kicad」というディレクトリの中にはkicadという別の電子回路基板設計ソフトウェアで開くことができるファイルが入っています。ここでは設計図が画像ファイルになったものを開いてみます。
まずは「trezor_v1.1.brd.png」(1枚目の画像)を開いてみます。

これはアートワークといい,実際の電子回路基板の配線図です。
あたりまえですが,Trezorの形をしていますね。実際の電子回路基板の写真が「board.jpg」で見れますので比べてみると分かりやすいと思います。水色の線は回路基板の表面の配線,オリーブ色の線は裏面の配線です。表と裏の配線はビア(via)とよばれる紫色の丸い部分で接続されています。そして黒い線で書かれている場所に電子部品がはんだ付けされています。
小さい基盤にギュウギュウに電子部品が詰め込まれています。実際の設計ではアートワークをいきなり設計し始めるとごちゃごちゃしすぎるので,回路図から設計をします。

「trezor_v1.1.sch.png」を開いてみます(2枚目の画像)。右下に鎮座している大きな四角がディスプレイ,上部中央付近にある「USB...」と書かれているものがUSBコネクタ,右のS1,S2はボタン用のスイッチです。そして「U1○○○」と書かれているものがいくつかありますが,これは実際には一つの部品です。端子が多いので回路図上では分割して記載されています。これがマイコンとよばれるものです。

写真(3枚目の画像)でいうとQRコードのようなシールが貼り付けられている大きな部品です。これはTrezorの頭脳でありファームウェア(=ソフトウェア)が入っていてTrezor全体を司っている最重要部品です。ディスプレイの描画やパソコンとの通信はもちろん,秘密鍵もマイコン内部のメモリに保存されています。の保管大きな部品なので分散して表記されています。どのような種類のマイコンが使われているかは部品リストに書いてあります(4枚目の画像)。

ハードウェア屋さんは部品リストのことをBOM(Bill Of Materials)といいますが,初めて聞くと何のことだかさっぱり分かりませんね・・・。「trezor_v1.1_BOM.csv」を表計算アプリ(ExcelやNumbers)かテキストエディタで開きます。「STM32F205RET6」がマイコンの型番です。STMicroelectronicsという大きな半導体メーカーが製造しています。
製品ウェブサイト(https://www.st.com/.../microcontrollers.../stm32f205re.html)を見てみるとArm社のCortex-M3シリーズのコア(最近話題のAppleのM1チップもArmコア)を搭載しています。動作周波数120MHz,メモリ128kBという,一般的なパソコンと比べると何とも非力ですが,電池1個でも動作するぐらいの低消費電力で,価格も数百円です。
次回はTrezor Oneに使われているマイコンについて詳しく解説する予定です。