今日、ビットコインのブロックチェーンを破壊できるほどの量子コンピュータは存在しません。しかし開発者たちは、潜在的な脅威に備えるための一連のアップグレードの波を、すでに検討し始めています。しかもその通りです。脅威はもはや仮説の域にとどまっていないからです。
今週、Googleは、十分に強力な量子コンピュータならビットコインの中核となる暗号を9分未満で解読できるという研究を公開しました。その時間は、平均的なビットコインのブロック決済時間より1分速いものです。そうした脅威が2029年までに現実になる可能性を、いくつかのアナリストは信じています。
賭け金は大きいです。価値が数百億ドルに及ぶ約650万ビットコインのトークンが、量子コンピュータが直接攻撃し得るアドレスに保管されています。そのうち一部のコインは、ビットコインの匿名の創設者サトシ・ナカモトのものです。さらに、潜在的な侵害はビットコインの中核的な信条を傷つけます――「コードを信頼する」と「健全なお金」です。
以下に、脅威がどのようなものか、そしてそれを軽減するために検討中の提案を示します。
まず、提案に入る前に脆弱性を理解しましょう。
ビットコインのセキュリティは、ワンウェイの数学的関係に基づいています。ウォレットを作成すると、秘密鍵と秘密の数が生成され、それから公開鍵が導き出されます。
ビットコインのトークンを使うには、秘密鍵を公開するのではなく、それを用いて暗号署名を生成し、その署名をネットワークが検証できるようにすることで、所有していることを証明する必要があります。
この仕組みは完璧です。なぜなら現代のコンピュータでは、楕円曲線暗号――具体的には楕円曲線デジタル署名アルゴリズム(ECDSA)――を破って公開鍵から秘密鍵を逆算するのに、何十億年もかかるからです。したがって、ブロックチェーンは計算上、侵害できないと言われています。
しかし将来の量子コンピュータは、この一方向の道を、公開鍵から秘密鍵を導き出してコインを引き出すことができる、双方向の道に変えてしまいます。
公開鍵は2つの形で露出します。オンチェーン上でアイドル状態にあるコイン(ロング・エクスポージャー攻撃)か、稼働中、またはメモリープールで待機しているコイン/取引(ショート・エクスポージャー攻撃)です。
公開鍵支払い(P2PK)アドレス(サトシと初期のマイナーが使用)および、2021年に有効化された現行のアドレス形式であるタップルート(P2TR)は、ロング・エクスポージャー攻撃に対して脆弱です。これらのアドレスにあるコインは公開鍵を明らかにするために移動する必要がありません。露出はすでに起きており、将来の量子攻撃者を含め、地球上の誰でも読めます。およそ170万BTCが、古いP2PKアドレスに置かれています――サトシのコインを含めて。
ショート・エクスポージャーは、メモリープール――未確認取引の待合室――に結び付いています。取引がブロックに取り込まれるのを待っている間、その公開鍵と署名はネットワーク全体から見えています。
量子コンピュータはそのデータにアクセスできますが、ほんの短い猶予しかありません。つまり、取引が確認され、さらに追加のブロックの下に埋め込まれる前に、対応する秘密鍵を導き出してそれを使えるようにするための時間です。
前述の通り、今日タップルートを用いて作成される新しいビットコイン・アドレスのすべては、公開鍵をオンチェーンに恒久的に露出させます。これにより、将来の量子コンピュータにとって、消えることのないターゲットが与えられてしまいます。
ビットコイン改善提案(BIP)360は、Pay-to-Merkle-Root(P2MR)と呼ばれる新しい出力タイプを導入することで、オンチェーンに恒久的に埋め込まれ、誰にでも見える公開鍵を取り除きます。
量子コンピュータは公開鍵を研究し、秘密鍵の正確な形を逆算して、動作する複製(フォージ)を作ります。公開鍵を除けば、攻撃には頼れる材料がなくなります。一方で、ライトニング送金、多重署名のセットアップ、その他のビットコイン機能を含むすべては同じままです。
ただし、実装された場合、この提案が保護するのはこれから先の新しいコインだけです。すでに露出した古いアドレスにある170万BTCは別の問題で、以下の他の提案によって対処されます。
SPHINCS+はハッシュ関数に基づくポスト量子署名方式で、ビットコインで使われる楕円曲線暗号が直面する量子リスクを回避します。ShorのアルゴリズムはECDSAを脅かしますが、SPHINCS+のようなハッシュベースの設計は同様に脆弱だとは見られていません。
この方式は、NIST(米国立標準技術研究所)により、公開レビューを重ねた後、2024年8月にFIPS 205(SLH-DSA)として標準化されました。
セキュリティの代償はサイズです。現行のビットコイン署名が64バイトであるのに対し、SLH-DSAは8キロバイト(KB)以上のサイズです。そのため、SLH-DSAを採用するとブロックスペースの需要が大幅に増え、取引手数料も引き上げられます。
その結果、SHRIMPS(別のハッシュベースのポスト量子署名方式)やSHRINCSのような提案は、ポスト量子セキュリティを損なうことなく署名サイズを小さくするために、すでに導入されています。これらはSHPINCS+を土台にしつつ、そのセキュリティ保証をより実用的で、ブロックチェーン利用に適した省スペースな形で維持することを目指しています。
この提案は、ライトニング・ネットワークの共同創設者Tadge Dryjaによって提案されたソフトフォークであり、将来の量子攻撃者からメモリープール内の取引を守ることを目的としています。取引の実行を2つのフェーズ――CommitとReveal――に分離することで、それを実現します。
あなたが相手にメールするつもりだと相手に知らせ、そして実際にメールを送ると想像してください。前者がcommitフェーズで、後者がrevealです。
ブロックチェーン上では、まず意図のための封印された指紋(fingerprint)を公開します――それは取引について何も明かさないハッシュです。ブロックチェーンはその指紋に恒久的にタイムスタンプを付けます。その後、実際の取引をブロードキャストすると、あなたの公開鍵が見えるようになります――そしてはい、ネットワークを監視している量子コンピュータは、その公開鍵から秘密鍵を導き出し、資金を盗むための競合取引をフォージできてしまう可能性があります。
しかし、そうしたフォージ済み取引は即座に拒否されます。ネットワークが確認するのです――この支払い(spend)は、オンチェーンに登録された先行するコミットがあるか?あなたのものはあります。攻撃者のものにはありません。攻撃者はその直前の瞬間にそれを作ったからです。事前登録されたあなたの指紋が、あなたのアリバイです。
ただし問題は、取引が2つのフェーズに分割されることでコストが増えることです。そのため、これは暫定的な橋渡し(interim bridge)として説明されており、コミュニティが量子防御を構築する作業をしている間に実際に展開できるようにするものです。
開発者Hunter Beastによって提案されたHourglass V2は、約170万BTCが保有されている古い、すでに露出済みのアドレスに紐づく量子的な脆弱性を狙います。
この提案は、将来の量子攻撃でこれらのコインが盗まれ得ることを受け入れ、そのうえで、1ブロックあたり1ビットコインまでの売却に制限することで、出血を抑えようとします。市場を壊滅させうるような、壊滅的な一夜の大量清算(overnight mass liquidation)を避けるためです。
たとえ話は銀行取り付け騒ぎ(bank run)です。人々が引き出すことを止めることはできませんが、システムが一夜で崩壊しないよう、引き出しの速度を制限できます。この提案は物議を醸しています。なぜなら、たとえこの限定された制限であっても、ビットコイン・コミュニティの一部では、あなたのコインを使う権利に外部の誰かが干渉してはならないという原則の違反だと見なされるからです。
これらの提案はまだ有効化されておらず、ビットコインの分散型ガバナンス――開発者、マイナー、ノード運用者にまたがる――を考えると、いかなるアップグレードも実現するまでには時間がかかりそうです。
それでも、今週のGoogleレポートに先行して提出されてきた提案が継続していることは、この問題が長い間開発者の注目事項であったことを示唆します。これは、市場の懸念を和らげる材料になるかもしれません。