Last Updated on 2026年8月18日 by oba3
ビットコイン(Bitcoin)専用ハードウェアウォレットのコールドカード(COLDCARD)で、秘密鍵の元になるシード生成時の乱数が弱くなる不具合が数年間見逃されていたことが明らかになった。ギャラクシー・リサーチ(Galaxy Research)は、2026年8月までに約7300アドレスから1596BTC、1億ドル超が盗まれた可能性が高いと分析している。問題の起点は2021年3月のファームウェア変更で、本来使うはずだったハードウェア乱数生成器ではなく、予測可能性の高いソフトウェア側の疑似乱数生成器へシード生成処理が接続されていた。今回の焦点は、エアギャップ端末が安全かどうかではない。秘密鍵が最初に十分な予測不可能性を持って生成されたかという、自己管理のさらに下にある信頼層だ。
何が起きたのか?
コールドカードを開発するコインカイト(Coinkite)によると、不具合は2021年3月に実施した暗号処理ライブラリの移行時に入り込んだ。本来、ウォレットのシード生成では端末のハードウェア乱数生成器を利用する設計だったが、ビルドとリンク処理の統合ミスにより、シード生成経路がマイクロパイソン(MicroPython)に含まれる一般用途の疑似乱数生成器へ接続された。
重要なのは、ハードウェア乱数生成器そのものが故障したわけではないことだ。安全な乱数生成機能は端末内に存在していたが、実際のシード生成処理がその関数へ到達していなかった。コード上に安全な機能が存在することと、実機で重要処理がその経路を通ることは別問題だった。
コインカイトの現在の分析では、影響の大きかったMk2とMk3の一部ファームウェアでは実効的な探索空間が約40ビットまで低下したと推定されている。Mk4、Mk5、Qでは追加のセキュアエレメント由来の情報が混ぜられていたため約72ビットと推定されるが、本来目標とする128ビットには達していなかった。
ギャラクシー・リサーチは複数回のオンチェーン攻撃を分析し、約7300アドレスから1596BTCが盗まれたことに高い確度を示している。攻撃者は端末へ物理的に接触する必要がなく、弱い乱数から生成可能な秘密鍵候補を計算し、公開ブロックチェーン上のアドレスと照合できたとみられている。
なぜ重要なのか?
ハードウェアウォレットの安全性は、秘密鍵をインターネット接続端末へ出さないことや、エアギャップで署名することを中心に説明されることが多い。しかし、これらの防御は秘密鍵そのものが安全に生成されていることを前提としている。
十分な乱数から作られたシードであれば、攻撃者が秘密鍵を総当たりで探すことは現実的ではない。一方、乱数候補が大幅に狭まれば、秘密鍵を端末から盗み出さなくても、外部から候補を再現できる可能性が生まれる。
今回の事件では、ビットコインの暗号方式が破られたわけでも、エアギャップ通信が突破されたわけでもない。鍵生成時のエントロピーという前提が崩れたことで、その後の保管技術が意味を失った。この違いは自己管理の安全性を考えるうえで非常に重要だ。
市場構造への影響
自己管理は取引所やカストディアンへ資産を預けないため、企業破綻や出金停止といった第三者リスクを減らせる。しかしハードウェアウォレットを使う限り、利用者は別の場所でメーカー実装へ依存している。
具体的には乱数生成、暗号ライブラリ、ファームウェア、ビルド設定、署名処理、セキュアエレメントなどだ。今回のように一つの関数接続を誤れば、端末全体が正常に動いているように見えても、最も重要な秘密鍵生成だけが弱くなる場合がある。
さらにコールドカードのソースコードは公開されていた。それでも不具合は長期間見逃された。オープンソースであることは検証可能性を高めるが、公開されていること自体が安全性を保証するわけではない。複数ライブラリをまたぐ実行経路や、実際のビルド後にどの関数が呼ばれるかまで確認する必要がある。
このためハードウェアウォレット市場では、エアギャップやセキュアエレメントといった機能比較だけでなく、鍵生成から署名までを実機で検証できるかが重要な評価軸になる。自己管理製品の競争力は、秘密鍵を守れるかだけでなく、秘密鍵を安全に生み出したことを証明できるかへ広がる。
資金・規制・流動性との関係
今回の被害が大きくなった理由の一つは、同じ実装不具合が多数の利用者へ共通して存在したことだ。中央集権型取引所の障害では一つの企業システムが集中攻撃されるが、ハードウェアウォレットでは分散して保管された資産であっても、共通する鍵生成コードに欠陥があれば同じ探索方法で狙われる。
つまり資産保管が分散していても、実装依存が集中していれば別の単一障害点が残る。利用者が異なる国に住み、端末がネット接続されていなくても、同じファームウェアで生成されたシードには共通リスクが存在する。
機関投資家が自己管理や専用署名端末を利用する場合、この論点はさらに重くなる。単一メーカーの乱数生成だけに依存せず、複数署名、異なる実装を組み合わせた鍵生成、独立したエントロピー検証などを採用すれば、一つの製品不具合が資産全体へ波及するリスクを減らせる。
コインカイトはすでに修正版ファームウェアを公開している。ただし更新だけでは過去に弱い乱数から作られたシードは修復されない。影響を受ける利用者は、新しい安全なファームウェアで別のシードを生成し、資産を新しいウォレットへ移す必要がある。
初心者向け補足
シードフレーズとは、ウォレットの秘密鍵を作り直すための元になる情報だ。一般的には12語や24語の単語として表示され、このシードから複数の秘密鍵やビットコインアドレスが生成される。
重要なのは、単語がランダムに見えるかではなく、その元となる乱数がどれだけ予測困難かだ。例えば本来128ビット相当の探索空間が必要なところ、実際には約40ビットしかなければ、攻撃者が候補を計算できる現実性は大きく変わる。
コインカイトによると、影響を受けたファームウェアでも、シード作成時に50回以上の独立した安全なサイコロ入力を追加していた場合、この不具合だけによる危険はないとみている。また強く独自性のあるBIP39パスフレーズも追加の防御になるが、弱いシードそのものを修復するわけではない。
そのため古い端末を新しい端末へ交換するだけでは解決しない。弱いシードをそのまま新端末へ復元すれば同じ秘密鍵が再生成されるため、安全な環境で新しいシードを作る必要がある。
Web3Timesの視点
Web3Timesが今回見るのは、コールドカードという一製品のセキュリティ事故ではない。自己管理ではカウンターパーティリスクが消えるのではなく、信頼する対象が金融機関からソフトウェアとハードウェアの実装へ移るという点だ。
取引所へ資産を置けば、利用者は取引所の財務や内部統制を信頼する。自己管理へ移ればその依存は減るが、今度は秘密鍵を作るコード、端末、乱数源が正しく動くことを信頼する必要がある。今回の事件は、その信頼層が表面化した事例といえる。
特に重要なのは、エアギャップが最後の安全装置ではないことだ。ネットワークから完全に隔離された端末でも、最初に弱い秘密鍵を作れば攻撃者は端末へ触れずに資産へ到達できる。通信経路を守る前に、鍵生成そのものが正しいことを検証する必要がある。
今後見るべきなのは最終的な盗難BTCだけではない。ハードウェアウォレット各社が乱数生成経路を独立監査するのか、ビルド後の実機で鍵生成を検証する仕組みを持つのか、機関カストディーが単一メーカーへの依存をどこまで減らすのかが重要になる。自己管理の安全性は「秘密鍵を自分で持つか」という二択ではなく、その秘密鍵がどのコードと乱数源から生まれ、誰がその正しさを検証できるかという市場インフラの問題へ広がっている。
