今週の初め、GoogleのQuantum AIチームは、将来の量子コンピューターなら公開鍵からビットコインの秘密鍵を、だいたい9分で導き出せる可能性があると述べました。その数字がソーシャルメディア上で飛び交い、市場を震え上がらせました。
でも、実際にはそれは何を意味するのでしょうか?
まずはビットコインの取引がどのように機能するのかを見てみましょう。ビットコインを送るとき、ウォレットは秘密鍵で取引に署名します。秘密鍵は、あなたがそのコインを所有していることを証明する秘密の番号です。
その署名は、共有可能なアドレスである公開鍵も明らかにします。公開鍵はネットワークにブロードキャストされ、マイナーがブロックに組み込むまで、「メンプール」と呼ばれる待機エリアに置かれます。平均すると、確認には約10分かかります。
秘密鍵と公開鍵は、「楕円曲線離散対数問題」と呼ばれる数学の問題で結び付いています。古典コンピューターでは、その数学を有用な時間枠で逆算することはできません。一方で、Shor’s(ショアのアルゴリズム)と呼ばれるアルゴリズムを動かす、十分に強力な将来の量子コンピューターなら可能です。
ここで「9分」の話が出てきます。Googleの論文では、量子コンピューターは特定の公開鍵に依存しない攻撃の部分を事前に計算しておくことで、あらかじめ「仕込んでおける(primed)」ことがわかったとされています。
公開鍵がメンプールに現れたら、その機械が仕事を完了してあなたの秘密鍵を導き出すのに必要なのは、だいたい9分だけです。ビットコインの平均的な確認時間は10分です。これにより、攻撃者は、元の取引が確認される前にあなたの鍵を導き出して資金を振り向ける、約41%の確率を得られます。
それは、泥棒が何時間もかけて万能の金庫破りマシンを作るようなものだと考えてください(事前計算)。そのマシンはどんな金庫にも使えるのですが、新しい金庫が登場するたびに、最後の調整が必要になるのです。そして、その最後の一手にかかるのが約9分です。
これがメンプール攻撃です。警戒すべきものですが、必要な量子コンピューターはまだ存在していません。Googleの論文の推定では、そうした機械には50万,000個未満の物理量子ビットが必要になるはずです。今日の最大級の量子プロセッサは、だいたい1,000です。
さらに大きく、より差し迫った懸念は、すでに公開鍵が恒久的に露出しているウォレットにある6.9 million bitcoin(約総供給の3分の1)です。
これには、ネットワークの最初の数年間に使われていた「pay-to-public-key」と呼ばれる形式の初期のビットコインアドレスが含まれます。そこでは公開鍵がデフォルトでブロックチェーン上に表示されます。さらに、アドレスを再利用しているウォレットも含まれます。なぜなら、あるアドレスから支出すると、残っているすべての資金について公開鍵が明らかになるからです。
これらのコインには、9分の競争は不要です。十分に強力な量子コンピューターを持つ攻撃者なら、時間的なプレッシャーなしに、露出した鍵を1つずつ順に解読し、気長に取りかかればよいのです。
ビットコインの2021年のTaprootアップグレードは、これをさらに悪化させました。CoinDeskが火曜日の早い段階で報じた通りです。Taprootはアドレスの仕組みを変え、公開鍵がデフォルトでオンチェーン上に見えるようにしました。その結果、将来の量子攻撃で脆弱になり得るウォレットの対象範囲を、意図せず広げてしまったのです。
ビットコインのネットワーク自体は引き続き稼働します。マイニングは、量子コンピューターが現在のアプローチでは実質的に加速できない別のアルゴリズムであるSHA-256を使っています。ブロックは引き続き生成されます。
台帳も引き続き存在します。しかし、公開鍵から秘密鍵を導き出せるようになってしまえば、ビットコインの価値を支えている「所有の保証」が崩れます。露出した鍵を持つ人は誰でも盗難のリスクにさらされ、ネットワークのセキュリティモデルに対する機関投資家の信頼が崩壊します。
解決策は「ポスト量子暗号(post-quantum cryptography)」です。これは、脆弱な数学を、量子コンピューターでは解読できないアルゴリズムに置き換えます。イーサリアムは、その移行に向けて8年間取り組んできました。ビットコインはまだ始まっていません。