中級 レッスン5 読了4分

2^256の大きさ:なぜ誰も鍵を推測できないのか

鍵のスペースは大きくなく、ばかげています。この授業では、想像できる数字で壁を測定し、実際にどこがたわむのかを示します。

誰かが秘密鍵がただの数字であることを理解するたびに、同じ質問が浮かび上がります。それは、「数字を試し続けて当てることができるのか?」というものです。これは良い質問であり、答えは「難しい」ということではありません。答えは、試行が工学にぶつかる前に物理にぶつかるということであり、その壁の大きさを見る価値があります。

秘密鍵は256ビットです。これは、可能な鍵の数が2を256回掛けたものであることを意味します。つまり、約115に75個のゼロが続く数です。この量を書くのは簡単ですが、それを想像するのは簡単ではありません。そして、通常使われる比較はすべて同じ方向に失敗します。それらは小さすぎるのです。

地球上のすべてのビーチと砂漠の砂粒は約7.5京で、19桁の数字です。望遠鏡が届くすべての銀河の星は約10垓で、22桁です。観測可能な宇宙に存在する原子は10^80の範囲にあり、これはついに鍵の空間を超える最初の比較であり、1000倍の差があります。もし可能なすべての鍵に宇宙の原子が1つずつ割り当てられたとしても、まだ各鍵に1000個の原子が余ります。

地球上のすべての砂粒が試行であったとしても、探索はまだ始まっていない。

非常に大きな数字は、それにエネルギーを費やすときにより具体的になります。現在、Bitcoinの全ネットワークは毎秒約1垓のハッシュを計算しており、これは人類が単一のタスクのために構築した最大の計算努力です。もしそれがマイニングをやめてこのペースで鍵をテストし始めたとしても、年間約3に28個のゼロが続く数をカバーするだけであり、鍵の空間を掃くのに10^48年以上かかります。宇宙は138億年、11桁の数字です。

最も厳しい制限はこれですらなく、1996年にブルース・シュナイアーによって計算されました。どんなコンピュータでも状態を1ビット変えるために必要な最小限のエネルギーが存在し、それは技術ではなく熱力学から来ています。この理論的な最小値で計算すると、太陽が32年間に放出するすべてのエネルギーを捕らえる完璧なコンピュータでも、2^192までしか数えることができません。数えるだけです。何も検証せず、どのアドレスとも比較せず。そして2^192は2^256のごく一部に過ぎません。

そこまで数えるのは高価ではない:不可能だ。星全体のエネルギーでも近づかない。

ここで正直な修正をします。実際の安全性は2^256ではありません。公開鍵から秘密鍵を攻撃するアルゴリズムが存在し、空間の平方根程度で問題を解決します。これにより指数が半分になり、努力は2^128、つまり34に37個のゼロが続く数の範囲に移ります。これは上級者向けの鍵探索モジュールのテーマです。そして2^128は依然として非常に手の届かない範囲です。上記の太陽の計算は2^192ですら収まらないことを示していますが、それでもその数は地球の砂粒の数を掛け合わせたものよりも大きいのです。

できること、そして世界が行っていることは、範囲を縮小することです。誰も2^256を探しません。2^70や2^80の範囲で、誰かがすでに鍵があると知っている場所を探します。1ビット減らすごとに作業は半分になり、この算術がプロジェクトと不可能性を分けます。

落ちたのは範囲の大きさではなかった。抽選の大きさだった。

実際に発見されたすべての鍵はこの道をたどりました。どれも推測されたものではありません。それらは不適切に抽選されたのです。人間が選んだフレーズ、前のレッスンで説明したAndroidの壊れたジェネレーター、実際のウォレットになったテストの小さな範囲。数字の大きさは決して失敗しません。失敗するのは抽選であり、抽選は誰かが正しく作業を行ったかどうかに依存する唯一の部分です。

この巨大な数字を実際に入力することはありません。それは4つの異なる方法で書かれ、一つを他と混同すると、何も失われていないのにウォレットが空に見えることがあります。次のレッスンでは、鍵のフォーマットについて学びます。