ニュース暗号資産量子コンピューティング特集:量子コンピューティングがビットコインにもたらしうるもの

量子コンピューティング特集:量子コンピューティングがビットコインにもたらしうるもの

著者: Bitcoin Magazine·

重要ポイント

  • ビットコインの所有は、秘密鍵を保持していなければ誰もコインを支出できないという前提に依存しており、量子コンピューティングはこの基本的な前提に挑戦している。
  • 2^256通りの可能な鍵は地球上のすべてのコンピュータの計算能力を超えるため、古典コンピュータが現実的に秘密鍵を総当たりで解読することはできない。
  • 量子コンピュータは、離散状態を一つずつテストするのではなく、キュービット、重ね合わせ、もつれを使って結果の確率を変えることで、古典的なマシンとは根本的に異なる。
  • 正しく動作する量子コンピュータは、限られた回数のアルゴリズム実行で正しい秘密鍵にたどり着くことで、楕円曲線暗号を揺るがす可能性がある。
  • ビットコインに対する量子コンピューティングの脅威はコミュニティ内で認識されており、問題のさまざまな側面に対処する多数の潜在的な解決策が開発されている。
量子コンピューティング特集:量子コンピューティングがビットコインにもたらしうるもの

量子コンピューティング特集:量子コンピューティングがビットコインにもたらしうるもの

量子コンピューティングとは何か。量子コンピュータは古典コンピュータとどう違うのか。この技術はビットコインにどのような関係を持つのだろうか。

これらは、実用的な量子コンピュータが開発されれば存在脅威となり得るものへのビットコインの露出を考えるなかで、新しいビットコイナーが必然的に直面する問いである。ビットコインを保有できるのは、ある基本的な前提に基づいている。すなわち、秘密鍵のコピーを直接入手しない限り、その鍵を保持する本人以外は、その鍵で保護されたコインを支出する取引に署名できない、という前提だ。量子コンピューティングはこの前提に疑問を投げかける。

量子コンピュータは単に「速いコンピュータ」ではない。古典コンピュータとは根本的に異なる方法で動作し、そのため特定の種類の計算において古典コンピュータよりはるかに効率的である。本記事は量子コンピューティングを網羅的な技術的詳細で説明しようとするものではない。代わりに、古典コンピュータと量子コンピュータがどう異なるのか、特に大きな暗号鍵空間をどう扱うのかについて、直感的な説明を提供する。

古典コンピュータ

古典コンピュータに保存されるすべてのものは、1と0の列として表現される。各ビットは正確に1または0のどちらかであり、曖昧さはない。データは1と0として保存され、そのデータが操作または変更される際には、処理はビットごと、ステップごとに実行される。

したがって、古典コンピュータは離散的で曖昧さのないデータを線形の順序で変更していく。計算に必要な一連のステップを先に進んだり、途中を省略したりすることはできない。より効率的な数学的手法によって総作業量を減らせる場合でも、それらのステップを一つずつ実行しなければならない。

コンピュータで秘密鍵を生成する際、デバイスはランダムな値を取得する。その値は、ユーザーが入力するサイコロの結果、一般的なユーザー入力、デバイスのハードウェアが生成する乱数などに由来しうる。コンピュータはその値を1と0としてメモリに保存する。次に、秘密鍵の値に楕円曲線の生成点を掛けて公開鍵を作り出す。

最も基本的なレベルでは、このプロセスは、どのビットを使い、それをどう変更し、どの物理回路がそれを処理するかを指定するアルゴリズム的な指示で構成される。結果の値は、ビットごとに変更された後、メモリに戻される。有効なアドレスに到達するには追加のステップが必要だが、それらのステップも、メモリ内の1と0を変更する逐次指示という同じ一般的なパターンに従う。

もし誰かが古典コンピュータを使って他人の秘密鍵を推測しようとしたらどうなるだろうか。

可能な秘密鍵は2^256通り存在する。つまり、115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936通りの鍵が存在するのだ。

コンピュータは、公開鍵の生成に使われるのと同じステップごとの指示に従いながら、それらの秘密鍵を一つずつ、あるいは並列に処理できる分だけテストしなければならない。同時にテストする鍵が多くなるほど、必要な計算能力は増大する。このコストを回避するショートカットは存在しない。

より少ない計算能力を使えば、より多くの時間が必要になる。時間を短縮しようとすれば、より多くの計算能力が必要になる。古典コンピューティングでは、この課題は事実上不可能である。必要な計算コストは地球上のすべてのコンピュータを合わせても足りず、必要な時間は、すべての可能な鍵をテストし終える前に宇宙のすべての星が死滅するほど長い。

目的を達成するには、鍵を逐次的または並列にチェックする以外の選択肢が必要になる。ここで量子コンピューティングが関係してくる。

量子コンピュータ

量子コンピュータは、古典コンピュータと同じようには離散状態を扱わない。その情報の基本単位は量子ビット(キュービット)、すなわちビットの量子版である。1または0のどちらかである古典ビットとは異なり、キュービットは1と0の両方であり得る重ね合わせの状態で存在する。観測されたときに、それらの離散状態のいずれかに落ち着く。

重ね合わせは、量子コンピュータが異なる方法で計算することを可能にする重要な構成要素の一つである。もう一つはもつれ(エンタングルメント)だ。キュービットは必ずしも孤立して保存されるわけではない。それを表す物理的な原子はもつれることがあり、もつれた原子が観測されて単一の状態に収縮するとき、どれだけ離れていても、もつれた原子は同じ状態に収縮するということを意味する。

この違いは、アルゴリズムを比較することで直感的に理解できる。古典コンピュータでは、アルゴリズムは特定のビットの配列を受け取り、それをステップごとに変更して最終的なビットの配列を生成する一連の指示である。アルゴリズムは、一連の操作を通じて一つの離散状態を別の状態へと変換する。

キュービットは、観測によって収縮するまで離散状態を保存しない。代わりに、確率を保存している。特定のサイズのもつれたキュービットの集合(ここで想定する仮説的なケースでは2^256)に対して、各可能な状態には、システムが収縮する先の状態となる特定の確率が存在する。

したがって、量子アルゴリズムは、固定された離散状態を操作する単純なステップごとの指示ではない。それらは、異なる結果の確率を変える形でもつれたキュービットを操作する方法についての指示を提供する。建設的干渉は正しい結果の確率を高め、破壊的干渉は誤った結果の確率を下げる。これは、物理的な量子コンピュータが正確に動作するのを困難にするノイズや干渉とは別の概念である。

古典コンピュータは、特定の公開鍵に対応する鍵を見つけるために、個々の秘密鍵を一つずつチェックしなければならない。量子コンピュータは代わりに、適切なアルゴリズムを限られた回数実行するだけで正しい答えにたどり着くことができる。それは文字通り「すべての可能性を一度にチェックする」ことによるものではない。むしろ、重ね合わせが収縮しうる結果の確率を変更するのだ。

これが、量子コンピュータが古典コンピュータにはできない形で楕円曲線暗号の背後にある前提を揺るがせる理由である。また、量子コンピュータが、非常に大きな答えの候補空間を含む問題など、特定の種類の計算にのみ有用である理由でもある。

慌てる必要はない

古典計算と量子計算の根本的な違いは、実用的な量子コンピュータが実際に作られ正しく機能すれば、個々のビットコイン保有を守る根底にある前提が崩れることを意味する。それらの資金は安全でないものとなるだろう。

そのようなデバイスが実際に製造され、必要どおりに動作するなら、これは深刻なリスクである。しかし、ビットコインは完全に無防備というわけではない。問題と潜在的な露出は理解されており、問題のさまざまな側面に対処する多数の可能な解決策がまとまりつつある。

深呼吸して落ち着いてほしい。この号の残りの部分で、より広範な問題を詳しく見ていく。

本稿はBitcoin Magazineの最新の印刷版「The Quantum Issue」に掲載されている。オンラインでは、号全体で掘り下げられるテーマを先行公開するかたちで共有している。

この記事は最初にBitcoin Magazineに掲載され、Shinobiによって書かれた。