量子問題: いったい、量子コンピューティングとは何なのでしょうか?
量子コンピューティングとは何ですか?量子コンピューターは通常のコンピューターとどう違うのでしょうか?これはビットコインとどのような関連性があるのでしょうか?
新しいビットコイナーは必然的にこれらの疑問にぶつかり、実行可能な量子コンピューターが開発された場合にビットコインがその存在にとって非常に脅威となるものにさらされるという、彼らが掘り起こした問題に直面しなければなりません。
ビットコインを所有できるかどうかは、ビットコインのコピーを直接漏洩することなく、秘密鍵を所有する人以外の誰も、その鍵で保護されたコインで取引するために署名できるという基本的な前提に基づいています。量子コンピューティングはその仮定に疑問を投げかけます。
量子コンピューターは「単なるコンピューターではなく、より高速なコンピューター」です。これらは古典的なコンピューターとは根本的に異なる方法で機能するため、古典的なコンピューターよりもはるかに効率的です。さて、明らかに、量子コンピューターが実際にどのように動作するかを 4 ページ以内で詳細に説明するつもりはありませんが、量子コンピューターが古典的なコンピューターとどのように根本的に異なるかについて、核となる直観を提供します。
それでは、両方の種類のコンピュータが大きな暗号キーなどとどのようにやり取りするかを見てみましょう。
古典的なコンピュータ
従来のコンピューター (または今後は単にコンピューター) に保存されるものはすべて、一連の 1 と 0 として保存されます。それぞれ 少し (1 または 0) は正確に 1 または 0 です。曖昧さはありません。データが保存されるとき、それは 1 と 0 です。データの一部が操作または変更されるときは、1 または 0 ごとに少しずつ、段階的に行われます。
それがコンピュータの仕組みです。これは、格納している個別の明確なデータを 1 ステップずつ線形に変更します。先にスキップしたり、ショートカットしたりすることはできません (数学的に物事を行うためのより効率的な方法ではなく、実行中のステップという点で) 実行している計算のステップを 1 つずつ実行する必要があります。
コンピューターを使用して秘密キーを生成すると、コンピューターはランダムな値 (サイコロの入力、一般ユーザーの入力、デバイスのハードウェアからのランダム性など) を取得し、それを 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 つずつ線形または並列でチェックする以外に、別のオプションが必要です。そこで量子コンピューティングが登場します。
量子コンピュータ
量子コンピューターは離散状態では動作しません。すべては正確に 1 か 0 です。量子コンピューターの最も基本的な情報は量子ビット (ビットの量子版) です。ビットとは異なり、量子ビットは 1 と 0 の両方である a にあります。 である場合にのみ、どちらか一方の離散状態に落ち着きます。
これは、量子コンピューターが異なる方法で計算できるようにする重要な構成要素の 1 つです。もう一つは です。量子ビットは単独で保存されているだけではなく、量子ビットを表す物理的な原子が一緒になっており、観察すると個別の状態に崩壊します。これは、原子がどれほど離れていても、絡み合った原子が観察され、単一の状態に崩壊することを意味します。
さて、ここで事態が奇妙になるので、少し手を振る必要があります。量子コンピューターが古典的なコンピューターと根本的に異なる理由を直観的に理解した上で作業を進める必要があります。古典的なコンピュータのアルゴリズムは、特定のビット セットを取得し、新しいビットの完成セットを完成して出力するまで、アルゴリズムの命令に従って段階的にビット セットを変更する一連の命令です。したがって、アルゴリズムは段階的に 1 つの離散状態を取得し、それを別の状態に変換します。
量子ビットは、観察されて 1 つに崩壊するまで、離散状態を保存しません。それらは確率を保存します。任意のサイズの量子ビットのセットがもつれている場合 (この仮定のケース 2 のように)256)、崩壊後の特定の可能な状態には、その特定の状態への崩壊が確実にあります。
量子アルゴリズムは、離散状態で動作するための段階的な命令ではなく、さまざまな結果の確率を変更する方法で動作する方法についての一連の命令です。正しい結果の確率を高め、不正確な結果の確率を減らすために使用されます (これは、物理量子コンピューターが正確に機能することを困難にするノイズや干渉ではないことに注意してください。これは別の概念です)。
したがって、古典的なコンピューターは、特定の公開鍵に一致する秘密鍵を見つけるために個々の秘密鍵を 1 つずつチェックする必要がありますが、量子コンピューターは、適切なアルゴリズムを使用して数回実行するだけで、正しい答えに到達できます。これは、「すべての可能性を一度にチェックする」ことによって行われます。それは単に重ね合わせが何に崩壊するかの確率を変更するだけです。
これが、量子コンピューターが楕円曲線暗号の基礎となる仮定を破ることができ、古典的コンピューターが破ることができなかった理由です (また、量子コンピューターが、確認すべき答えの候補の可能性のある空間を持つ特定の種類の計算にのみ役立つ理由でもあります)。
慌てないで
古典的計算と量子計算のこの根本的な違いは、そうです、実行可能な量子コンピューターが実際に作成され、正しく機能する場合、すべてのビットコイナーの個々のビットコインを保護するという根本的な前提が崩れることを意味します。これらの資金はすべて安全ではありません。
確かに、そのようなデバイスが実際に製造され、それが機能する場合、これは重大なリスクですが、まったく準備ができていないわけではありません。私たちは問題を理解し、その危険性を理解しており、問題のさまざまな側面に対して多数の考えられる解決策が集まりつつあります。
呼吸してリラックスしてください。この号の残りの部分では、問題全体を説明していきます。
この投稿は「量子問題: いったい、量子コンピューティングなのか?」 Bitcoin Magazine に初掲載され、Shinobi によって書かれました。
