こんにちは。AndGoのハードウェア担当の片山です。

2022年11月のFTXの破綻により,取引所から自身が管理するウォレットへ資産を移動しようと考える人も増えてきているのではないでしょうか。

しかし,個人が管理するウォレットに資産を移した瞬間から,すべてが自己責任となり,何かの手違いで資産を失ったとしても誰も助けてはくれません。秘密鍵を無くしてしまう,PINを忘れてしまうなどの保有者のミスの他,様々な外的要因によるリスクが想定されます。

悪意のある何者かによってファームウェアやハードウェアに何らかの細工がされる可能性もありますし,ハードウェアウォレットそのものの偶発的なトラブルも含みます。USBコネクタが壊れてしまったり,画面が表示されなくなったりしただけで,そのハードウェアウォレットは使えなくなってしまいます。

これらのリスクはどのような種類のハードウェアウォレットを選択するかに変わってきます。今回はハードウェアエンジニアの立場からハードウェアウォレットの選び方について考えていきます。

インターフェイスの種類

ハードウェアウォレットは普段はインターネットから遮断されていることでセキュリティを向上させるというものです。しかし,送金時にはどうしても署名済みのトランザクションをブロードキャストするため,インターネットへの接続が必要となります。

インターネットへの接続といってもWiFiでの接続ではなく,たとえばPCとUSBで接続し,PC経由でトランザクションをブロードキャストすることも含みます。

現在,世の中に出ているハードウェアウォレットに搭載されているインターフェイスとしては,USB,Bluetooth,NFC,SDカードなどがあります。

USBはTrezoreやLedger他多くのハードウェアウォレットが採用しているインターフェイスです。最近はMicro USBからUSB-Cに移行しつつあります。USB接続を必要とするハードウェアウォレットの場合,アプリ側はPCにインストールするタイプになります。

物理的な線で接続されるので,接続されたPCにインストールされているアプリに細工された場合に,ハードウェアウォレットから情報を盗み出せてしまいそうな不安を持たれる方もいらっしゃると思います。しかし,ハードウェアウォレット側のインターフェイスはUSB経由でそれほど多くのことができるわけではないので,例えば,PCから秘密鍵を盗むようなことは不可能です。

Bluetoothを搭載するハードウェアウォレットとしてはLedger Nano XやCool Wallet,以前ご紹介したJadeなどです。情報が電波に載せているのでその点を心配される方もいらっしゃいますが,Bluetotoh 4.2以降はプロトコルレベルで暗号化されて通信されていますので,心配は無用です(詳細は以前の解説記事を御覧ください)。Bluetoothを搭載することのメリットとしてはアプリをスマートフォンで使えることでしょう。Cool Walletは通信用のインターフェイスとしてBluetoothしか用意していません。

NFCはSUICAなどの近距離の非接触カードに使われている規格です。NFCを利用しているウォレットはメジャーなものではColdCardでトランザクションの移動に使われています。基本的には近距離で電力を供給しながら通信をするので,通信を傍受される可能性が無いことが一つの安心点です。NFCは規格が複数種類(Felica,Type A,Type B)などがあります。例えばiPhoneであればiPhone 7以降はすべて対応しているので問題はなさそうですが,今後の規格の動向が若干心配ではあります。

SDカードを搭載しているものとしては,ColdCardやDigital BitBoxがあります。SDカードにデータを書き込んで移動します。先日開催したDIYハードウェアウォレット勉強会で制作したウォレットもこのタイプです。Digital BitBoxはディスプレイを搭載していないためバックアップをSDカードにとるということも特徴です。

セキュリティ面ではどの方法も問題は無いですし,直接秘密鍵などの情報が流れることもないため,気にする必要はありませんが,物理的な故障に関してはUSBやSDカードは弱くなります。コネクタの接触不良や,コネクタが回路基板から取れてしまうことがリスクとしてあります。静電気による故障や動作不良のリスクも若干ですがあります。

セキュアエレメントの有無

万が一ハードウェアウォレットが盗まれた場合であっても,現在販売されている主要なハードウェアウォレットであれば簡単に秘密鍵を取り出されることはありません。例えばの話ですが金庫の鍵をこじ開けてシードフレーズを盗み出すほうが遥かに簡単です。

秘密鍵はマイコンかセキュアエレメントの中に保存されていますが,セキュアエレメントの中に保存されていたほうがベターではあるものの,完全ではありません。また,セキュアエレメントの仕様は一般的には公開されていないので,チップがどのような動きをしているかは信じるしかないという意味ではセキュリティが向上しているかは総合的な判断となります。

先日,ColdCardに搭載されているセキュアエレメントであるATECC608Aにレーザーを当てることで内部の情報を取り出すことに成功したという話もありました。通常,秘密鍵はPINで暗号化されていますし,パスフレーズが設定されているのであれば,実際に資産を盗むまでには総当り攻撃が必要です。PINやパスフレーズをそれなりの長さのものをしっかり設定しておくという基本的な対策は効果的です。

電源

使い勝手と信頼性の面で重要な点が電源です。大きく分けると,USBによって供給するものと,バッテリーを搭載しているものがあります。TrezorやLedger Nano SはUSBのみです。当然ケーブルを抜くと電源が切れてしまいます。この方式ではハードウェアウォレットを使いたいときにいちいちUSBケーブルを挿さないといけないので,ハードウェアウォレット単体で使うということができませんし,どのみちUSBケーブルで接続するので,大抵アプリ経由での操作となります。

最近ではバッテリーの信頼性も上がってきているのでバッテリーを搭載したものが増えています。USB電源供給のハードウェアウォレットは使用する度にコネクタが壊れてしまうリスクがありますが,バッテリー供給のものはUSBコネクタを挿すタイミングは充電のときではそのリスクが押さえられます。しかしバッテリーは3〜5年ヘタってきますし,1ヶ月充電しないと,ほぼ確実に放電しきってしまいますので,頻繁に使用しない方にはバッテリーのメリットはほとんどありません。

もし,資産を長期的に保有し,送金をほとんどすることがないのであればUSBなどによる電源供給,頻繁にトレードをするような方であればバッテリーを搭載したものが良いかもしれません。そもそも,そこまで頻繁にトレードをする場合には一時的な資産をホットウォレットに置いておき,長期保有分をハードウェアウォレットに移すという使い方になるのでしょう。

部品構成

ハードウェアウォレットにはディスプレイやボタン,カメラ,SDカードスロットなど様々な部品が搭載されています。おそらく最もシンプルなハードウェアウォレットは初代のDigital BitBoxだと思います。ディスプレイがついておらず,LED,USB,SDカードスロット,タッチ式のボタンのみです。故障の可能性が低く,壊れても修理ができそうです。ただ,トランザクション内容を確認するディスプレイが無いのが不安です。

逆にSafePalなどはディスプレイ,方向キー付きボタン,カメラが搭載されています。カメラが搭載されているとデータのやり取りをQRコード経由で行えるという安心感が出ますが,ちょうど現在のように部品の入手性が悪くなると,製品そのものが手に入りにくくなるというリスクが出てきます。

その型式のウォレットを長期的に使用したいという場合にはなるべく特殊な使用や部品を使用していないものを選ぶのがよいでしょう。最近発表されたLedger Staxはタッチ式かつ曲面の電子ペーパーを搭載しています。おそらくバッテリー駆動で大画面を使いたいという設計なのですが,ディスプレイの供給が今後も安定的にされるのかが疑問です。

オープンソース vs クローズドソース

ハードウェア・ファームウェアがオープンソースであるのかクローズドソースであるかもハードウェアウォレットを選ぶ際の参考にしていただきたいところです。 Trezor,ColdCard,Digital Bitbox,Jadeはオープンソースです。ColdCardのファームウェアについては以前の記事で解説しています。

オープンソースの最も大きなメリットとしては多くの開発者に常に検証され続けるという点です。脆弱性があればすぐに修正されます。すべてがオープンですので,バックドアが仕掛けられる可能性はありません。もちろん購入したハードウェアウォレットも正規のファームウェアをアップデートすれ必要があります。クローズドソースのハードウェアウォレットはブラックボックスですので,製造元を信じるしか無いですが,セキュリティホールが発見されづらいというメリットがあります。

まとめ

今回はハードウェアウォレットの選び方について解説しました。様々な選定ポイントがありますが,使用される方の使用頻度,取引スタイルによって選ぶのが良いでしょう。セキュリティに関してはむやみに不安になるのは良くなく,それよりも可能性が高い紛失や故障のリスクを下げることを冷静に考えてみることが大切です。

その他の選定ポイントとしてはバックアップのとり方や操作性などがあります。好みなどもありますので,実際に使用方法のチュートリアルをチュートリアル動画で確認したり,オープンソースのものはエミュレータがあるので実際に使ってみると良いと思います。