なぜ他人のBTCウォレットが自分のものと同じアドレスを生成できないのか不思議に思ったことはありませんか? あるいは、なぜ誰かがあなたと同じシードフレーズを生成できないのか?結局のところ、ほんの数語に過ぎませんから! このスレッドでは、ビットコインがどれほどあなたの資産を守っているかを調査し、数字を検証します。🧵⬇️
ビットコインプロトコルがあなたの資産を守るために使用する主な3つのツールがあり、理解しておく価値があります。 エントロピー、ハッシュ関数、非対称暗号学。 これらはすべて、ビットコインの外でもデジタルセキュリティの世界で広く使われています。それぞれを簡単に説明しましょう。
まずはエントロピーです。これは「予測不能なランダム性」の簡潔で凝った呼び名です。 もし非常に大きな数字を予測不能な方法でランダムに選んだ場合、どんなコンピュータもそれを当てることは絶対にできません(数字が十分に大きくなれば!)。 そうすれば、安全な秘密が手に入ります。
どのくらいの大きさが十分なのですか? NISTは効果的なセキュリティのために2^112ビット(別名112ビット)以上を推奨しています。 参考までに、ビットコインマイニングネットワーク全体は現在、10分ごとに約2回^79回の推測を行っています。 しかし2^112はそれより80億倍以上大きいのです!
さらに、12語のシードフレーズはさらに大きなエントロピーを表します:2^128。(各単語は11ビットを表します。11×12 = 132、チェックサムの場合はマイナス4ビットです。) 2^128はNIST推奨の約65,000倍の強さです!
特定のシードフレーズを推測するには、世界中のビットコインマイニングマシンをすべて借りて約107億年も推測し続ける必要があるようなものです。 理論的には可能ですが、ベストプラクティスを守れば実現すると考えるのは無理があります。
次に、ハッシュ関数です。 ハッシュ関数は素晴らしいです。なぜなら、どんなデータ(プリイメージと呼ばれる)でも入力すると、0から関数の上限までのユニークな数値を出力するからです(特にSHA-256は2^256の範囲で有名です)。 単語、ページ、本を入力できます。
これらの関数は一方通行です。入力から簡単に出力を見つけることができます。しかし、出力しかない場合は、推測せずに入力を見つけることはできません。 似たような入力(例えば大文字のような)でさえ、わずかな変更で出力が全く異なりランダムに見えます:
したがって、ハッシュ出力はエントロピーと類似の性質を持ちます。 特定のハッシュ出力をもたらすプリイメージを探している人は、何度も何度も推測しなければなりません。2回^112回以上の試行が必要なら実現不可能で、原像は確実です。
ビットコインは取引を不可逆的にするためにSHA-256を使用し、ほとんどのアドレスタイプを保護するためにSHA-256またはRIPEMD-160を使用しています。 つまり、あるウォレットが他のウォレットと同じアドレスを生成するには、少なくとも2^160回の試行が必要で、それだけで十分なセキュリティです。
最後に:非対称暗号学。 公開鍵暗号法、または多くの文脈では楕円曲線暗号(ECC)とも呼ばれます。 ビットコインでは、ECCが秘密鍵が公開鍵を生成するだけでなく、取引を承認するための署名も生成するために使われます。
公開鍵が十分に大きな数字であれば、関連する秘密鍵を見つけるにはまた膨大な推測が必要になります。 ビットコインキーは2^256の範囲内の数字です。計算すると、セキュリティは実際にはビットの半分、つまり2^128となり、これは安全です。
最終的に、ビットコイン経済で通常の業務を行うすべての人は、NISTの推奨や一般的なオンラインバンキングのパスワードをはるかに超えたセキュリティ基準によって保護されています。 以下のチャートは状況を視覚化するのに役立ちます。
578