ここ数年、定期的に話題に上がる量子コンピュータのビットコインに対する脅威が今週もツイッターで話題になっていました。確かに量子コンピュータは進歩していますが、現時点で状況が大きく変わったとは言い難いのが実情です。

また、4年近く前に有識者によってSpotlightに投稿された以下の記事もとても参考になるので、お時間のある方は読んでみてください。

ビットコイン vs 量子コンピュータ
本記事では結局量子コンピュータはブロックチェーンに対してどのような影響があるのかをなるべく詳細に説明

この話題が盛り上がるとき、多くの場合話題の中心は「量子コンピュータがどのようにビットコインに対して脅威なのか」「時期的にはいつくらいからリスクがあるのか」「自分が取れる対策は」というテーマになります。しかし重要なのはビットコインがどのようにして量子コンピュータ耐性を獲得するのか、そのプロセスなのではないでしょうか。

今日はビットコインが量子コンピュータ耐性を獲得するプロセスを想像してみましょう。

・量子耐性のある署名アルゴリズムのBIPドラフトが提案されている

・提案の内容、導入方法ともにタイミングが肝心

・利害が一致しやすい問題はスムーズにフォークできる可能性

量子耐性のある署名アルゴリズムのBIPドラフトが提案されている

冒頭で紹介した記事に書いてあるとおり、ビットコインにとって量子コンピュータの脅威とは主にECDSAやSchnorrの公開鍵から秘密鍵を逆算することができるショアのアルゴリズムです。ビットコインアドレス自体は公開鍵をさらにハッシュして生成されているため、そこから即時に秘密鍵まで割り出すことは考えにくいですが、送金時にはトランザクションでアドレスに対応する公開鍵を公表する必要があり、悪意と計算力のある量子コンピュータの脅威に晒されます。(ウォレットなどから公開鍵が流出するリスクもあります)

より深刻な問題とされているのが、ビットコインアドレスの再利用をするとそのアドレスに対応する公開鍵は公知の状態となることで、存在するビットコインのうち20%ほどがこの状態で保管されているようです(デロイト社の調査)。これらのコインが量子耐性を獲得することなく横領されると、市場を通して(短期的かもしれませんが)全ホルダーに影響します。また、Taprootとともに導入されたアドレス形式であるP2TRもそれ自体が公開鍵となるので、アドレス再利用と同様に脆弱といえます。

そこで今年6月にrust-bitcoinのHunter Beast氏が量子耐性のあるアドレス形式P2QRH (Pay-to-Quantum-Resistant-Hash)を提案するBIPドラフトを公開しました。使用されている署名スキームはSQISignというもので、米国NISTが標準として検討していた量子耐性をもつ署名スキーム(8月に正式決定)との比較に関してもChaintopeの安土氏の記事が詳しいです。

いずれにしても鍵長や署名サイズが現行のECDSAと比較してとても大きくなるため、ビットコインの量子耐性獲得にはセットでスケーラビリティ面の懸念が生まれることに注意が必要です。

提案の内容、導入方法ともにタイミングが肝心

さて、既にこのような提案がなされているわけで、技術的なビットコイナーの間でも量子耐性の話題は全くの無関心というわけではありません。しかし、議論が盛り上がっている様子もありません。これに関してはいくつか理由が挙げられます。

まず、量子コンピュータの脅威がまだ理論的なものであり、緊急性がないこと。今後数年で直面する脅威ではないため、他に優先して議論すべきアップデートが多数存在します。

次に、量子コンピュータ耐性のある署名アルゴリズム自体も今後の研究によってひっくり返ってしまうリスクが少なからずあるため、かえって技術的負債になったり被害リスクを大きくしてしまう可能性があること。例えばSQISignは量子耐性をうたう署名方式の中でサイズが小さいという圧倒的メリットがありますが、その一方でNIST標準ではなく、そもそもNIST標準だからといって長期にわたってセキュアという保証もありません。時期尚早に1つの解決策にコミットすると将来的にその判断を後悔してしまう可能性が高くなります。

最後に、そもそも量子コンピュータに関する知識を有する開発者がビットコイン技術者の中でも少数派であり、自信を持って議論に参加できる人材が不足していることも理由の1つかもしれません。これは今後、量子コンピュータというもの自体への関心が高まってくることで解決する類の問題かと思われます。

これらは提案の内容に関するものですが、すべてタイミングの問題でもあります。では、内容もタイミングも良かったとして、どのように導入されるでしょうか?

変更の内容にもよりますが、近年ますます難しくなっているように感じるソフトフォークあるいはハードフォークの合意は得られるのでしょうか?

利害が一致しやすい問題はスムーズにフォークできる可能性

これは私の持論ですが、揉めやすいソフトフォークは利害対立が生まれるものであり、ステークホルダーの利害が一致して必要性が認識されれば比較的すんなりソフトフォークやハードフォークを実行できるのではないかと思います。

例えばビットコインは2106年頃にブロック高の桁が溢れてしまうバグが発生します。これを修正するにはハードフォークが必要になりますが、そのときになってハードフォークの合意が得られない可能性は考えにくいです。なぜなら十分に告知時間のある既知の問題であり、そのバグによってビットコインが壊れてもビットコインノードを動かす者は誰も得しないためです。

同様に、量子コンピュータの脅威が現実的になってきたらユーザーは量子コンピュータ耐性のある署名アルゴリズムを求めるでしょう。揉める可能性があるとしたらECDSA/Schnorrのコインを一定期間後に動かせなくする措置を取るかどうか(これに関しては様々な事情がありつつ、市場的な意味では影響を受ける参加者も多いため揉める可能性がある)、スケーラビリティの要求からブロックサイズの増加を行うかどうか・どれくらい行うか、くらいでしょうか。

したがって、この件に関しては割と楽観的に見ています。確かに後者は揉めそうなテーマではありますが、SQISignの例だとブロックサイズ4倍ほどで現在と同等のスループットが実現できるため議論の俎上に上がらないことはないでしょう。10年後とかであればノードのパフォーマンス面でもほぼ問題ないかもしれません。

まとめ

・ビットコインの量子コンピュータ耐性を検討するには、脅威のタイムラインと将来の技術発展や脆弱性発覚などのリスクを踏まえて時期尚早という見方が根強い。しかし、提案がなされていないわけではない

・新機能追加のためのソフトフォークは昨今ではハードルが非常に高いが、量子コンピュータ耐性自体はステークホルダー間で利害が一致しやすいため、いざとなったらソフトフォークあるいはハードフォークでの対応ができると考えられる

・ただし、量子コンピュータ耐性の獲得と同時にスケーラビリティ問題が再燃することになるため、そのときにどこまでブロックサイズを拡張するかで揉めるかもしれない