ハッシュはブロックチェーンのセキュリティの基礎です:暗号学的魔法はどのように機能するのか

もしあなたがブロックチェーンがどのように取引を偽造から保護するかに興味があるなら、その答えはハッシュ関数の深いところにあります。ハッシュは、任意のデータをユニークで固定サイズの文字列に変換する基本的な技術です。シンプルな概念ですが、これが全ての暗号通貨エコシステムを信頼性のあるものにしています。

ハッシュ化とは何か?

基本的なレベルで言うと、ハッシュ化はプログラムが任意のサイズの情報を受け取り、固定サイズの結果を出力するプロセスです。この結果はハッシュ関数と呼ばれる数学的操作によって生成されます。多くの種類のハッシュ関数がありますが、暗号学的バージョンは暗号通貨のルールを変えました。

決定性 — これがハッシュ化を非常に価値のあるものにしています。これは簡単なことを意味します:入力データが変わらない限り、ハッシュ結果は常に同じになります。この特性はハッシュまたはダイジェストと呼ばれます。

通常のハッシュ関数とは異なり、暗号学的なバリエーションは片方向の関数として設計されています。言い換えれば、入力から出力を得るのは簡単ですが、出力だけを持って逆のプロセス—入力を見つけること—を行うのはほぼ不可能です。この非対称性がセキュリティを確保しています。

ハッシュ関数は実際にどのように機能しますか?

各ハッシュ関数は固定サイズの出力を生成します。たとえば、SHA-256アルゴリズムは常に256ビットの結果を出力し、SHA-1は160ビットを出力します。これは、関数に通過させる文字の数に関係なく発生します。

影響の規模を理解するために、実際の例を考えてみましょう。「Binance」と「binance」という言葉をSHA-256で通してみると:

  • バイナンス→ f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191
  • バイナンス→ 59BBA357145CA539DCD1AC957ABC1EC5833319DDCAE7F5E8B5DA0C36624784B2

たとえ最小限の変更であっても、(の1文字のレジスタの違い)は、全く異なる結果をもたらします。しかし、両方の結果は同じサイズ — 64文字、または256ビットを持っています。

同じ言葉をSHA-1で通すと:

  • バイナンス・→ 7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1
  • バイナンス→ e58605c14a76ff98679322cca0eae7b3c4e08936

SHA-1の結果は(40文字)よりも短いですが、原則は同じです。操作を何度繰り返しても、結果は同一になります。

SHAの略はSecure Hash Algorithmsを意味します。これはSHA-0、SHA-1、SHA-2およびSHA-3のグループを含む暗号学的関数のファミリーです。現在、安全と見なされているのはSHA-2とSHA-3のみであり、以前のバージョンには脆弱性が発見されています。

なぜハッシュ化は暗号通貨にとって重要なのか?

通常のハッシュ関数は、データベースの検索、大きなファイルの分析、情報管理に使用されます。しかし、暗号学的バージョンは、認証、デジタル署名、およびデータの整合性の確保において、はるかに広く展開されています。

ビットコインの文脈で、ハッシュは単なる補助的なツールではありません。それは、アドレスの生成からマイニングプロセス、ブロックをチェーンにつなげるプロセスまで、ネットワークのあらゆる側面に統合されています。

ハッシュの真の力は、大量のデータを扱う際に現れます。すべての情報を保存して検証する代わりに、ハッシュ関数を通過させてコンパクトな「フィンガープリント」を取得できます。このフィンガープリントが基準と一致すれば、データは変更されていません。これにより、大きなファイルを記憶したり転送したりする必要がなくなります。

ブロックチェーンでは、ほぼすべての暗号通貨プロトコルがトランザクションのグループをブロックにまとめ、連続するブロック間の暗号的なリンクを確立するためにハッシュ化に依存しています。これらの操作がチェーンを形成します。

暗号学的ハッシュ関数の3つの重要な特性

暗号学的ハッシュ関数が信頼できると見なされるためには、3つの重要な特性を満たす必要があります。

衝突抵抗

コリジョンは、二つの異なる入力が同じハッシュを生成するときに発生します。技術的に、コリジョンはどんなハッシュ関数にも避けられないものです。なぜなら、入力は無限にあり、出力は有限だからです。しかし、ハッシュ関数はコリジョンに対して堅牢であると見なされるのは、そのようなコリジョンが見つかる確率が非常に低く、何百万年もの計算が必要になるからです。

SHA-256 — ほぼ衝突がないと考えられている非常に強力な関数の例です。しかし、SHA-0とSHA-1は既に安全ではないと見なされており、脆弱性が発見されています。SHA-2とSHA-3のグループだけが衝突耐性を保っています。

初期の視点を見つける耐性

この特性は、一方向関数の概念と密接に関連しています。ハッシュがある場合、それを生成した入力データを見つけることはほぼ不可能です。攻撃者は、試行錯誤の方法で数十億の組み合わせを試さなければなりません。

この機能はパスワードを保護するために極めて重要です。多くのオンラインサービスはパスワードそのものではなく、そのハッシュを保存します。たとえデータベースが攻撃者の手に渡ったとしても、彼は元のパスワードを復元することはできません。

二度目の一目惚れを見つけることへの抵抗

この攻撃の種類は前のものよりも複雑です。泥棒は最初の入力とそのハッシュを持っており、その後、同じハッシュを生成する第二の入力を見つけようとします。単純な総当たり攻撃とは異なり、ここでは特定のハッシュに対してターゲットを絞った作業が必要です。

論理的に、衝突耐性のある関数はこの攻撃からも保護されているべきです—なぜなら、最後の攻撃は常に衝突を見つけることを前提としているからです。しかし、初期値は衝突耐性のある関数でも見つけることができる、なぜならそれは2つのランダムな入力を必要としないからです。

ビットコインのマイニングにおけるハッシュの役割

マイニングとは、新しいコインを獲得するだけのプロセスではありません。これは、バランスの確認からトランザクションをマークルツリーにリンクするまでのすべてのステップでハッシュ関数が満載された複雑な操作です。

Bitcoinが安全である主要な理由は、マイニングの計算コストにあります。マイナーは次のブロックの正しい解決策を見つけるために膨大な数のハッシュ操作を実行しなければなりません。

ブロック候補の作成プロセスでは、マイナーは異なるいくつかの入力を試行します。ブロックは、そのハッシュが特定の数のゼロで始まる場合にのみ有効と見なされます。このゼロの数はマイニングの難易度を決定し、動的に調整されます。

ネットワークのハッシュレートとは、すべての参加者の合計計算能力を指します。ハッシュレートが増加すると、Bitcoinプロトコルは自動的に難易度を上げ、ブロックの平均発見時間が約10分に保たれるようにします。ハッシュレートが減少すると、難易度は下がり、作業が容易になります。

重要なのは、マイナーは衝突を探しているのではなく、現在の難易度のしきい値に合致する多数の可能な解の中から有効な出力を1つ探しているということです。各ブロックにはいくつかの有効なハッシュがあり、マイナーは少なくとも1つを見つけなければなりません。

まさにこの計算作業が詐欺を不可能にします。もし誰かが取引履歴を偽造したいと思ったら、攻撃の瞬間から今日までのすべてのブロックを再計算しなければならず、これは経済的に見合わないコストです。より多くのマイナーがネットワークに参加するほど、攻撃は難しくなり、チェーンはより信頼性が高くなります。

まとめ

ハッシュ化は単なる数学的なゲームではありません。これはすべての暗号資産と分散システムの基盤です。暗号学的ハッシュ関数は、以前は不可能だった方法で、データのセキュリティ、改ざん防止、および認証を提供します。

これらの機能がどのように機能するかを理解することは、学問的な練習ではありません。これは、ブロックチェーンがなぜそれほど難しくハッキングされないのか、なぜあなたの資金が保護されているのか、そしてなぜ分散型システムが中央管理機関なしで存在できるのかを理解するための鍵です。暗号エコシステムに深く入り込みたい人にとって、ハッシュに関する知識は絶対に必要です。

BTC2.46%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
0/400
コメントなし
  • ピン