暗号資産におけるハッシュ関数の理解

ハッシュ化は、ハッシュ関数として知られる数学的な公式を使用して、可変サイズの入力から固定サイズの出力を生成するプロセスです。すべてのハッシュ関数が暗号を含むわけではありませんが、暗号ハッシュ関数は暗号通貨にとって基本的なものであり、ブロックチェーンやその他の分散システムがデータの整合性とセキュリティの高いレベルを達成するのを可能にします。

通常のハッシュ関数と暗号ハッシュ関数はどちらも決定的であり、入力データが変更されない限り、ハッシュアルゴリズムは常に同じ結果を生成します(ダイジェストまたはハッシュ)としても知られています。

暗号通貨ハッシュアルゴリズムは通常、一方向関数として設計されており、 substantialな時間と計算リソースがないと逆算することが困難です。言い換えれば、入力から出力を生成するのは比較的簡単ですが、逆の方向に進むのはかなり難しいです。一般的に、入力を見つけるのが難しいほど、ハッシュアルゴリズムはより安全であると考えられています。

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

異なるハッシュ関数は異なるサイズの結果を生成しますが、各ハッシュアルゴリズムの出力サイズは常に一定です。たとえば、SHA-256アルゴリズムは256ビットの結果しか生成できませんが、SHA-1は常に160ビットのダイジェストを生成します。

例を挙げると、"Gate"と"Gate"という言葉をSHA-256ハッシュアルゴリズム(、ビットコインで使用されているもの)に通してみましょう。

SHA-256の

アウトプット

出力 (256 ビット)

ゲート

7f43e4e2c9d9e6249ba0df8a911b46400f6fd5e9993a5f1ea65e4633e2de5a6c

ゲート

9c6b057a2b9d96746c38a3f4e466678e1b4c4425ff8fe9659e96c903e7a1f3cc

注意してください。最初の文字の大文字小文字のわずかな変更(は、全く異なるハッシュ値をもたらしました。しかし、SHA-256を使用したため、出力は常に256ビット)または64文字(の固定サイズになります。さらに、アルゴリズムに2つの単語を何度通しても、2つの出力は一定のままです。

同じ入力をSHA-1ハッシュアルゴリズムに通すと、次の結果が得られます:

SHA-1 (英語)

アウトプット

出力 )160 ビット(

ゲート

F8E4EBA8D46E2B1079E6A1A8ABF0A0D8C3A81D73

ゲート

b7e23ec29af22b0b4e41da31e868d57226121c84

興味深いことに、SHAはSecure Hash Algorithmsの略です。これはSHA-0およびSHA-1アルゴリズム、さらにSHA-2およびSHA-3グループを含む暗号ハッシュ関数のセットです。SHA-256はSHA-2ファミリーの一部であり、SHA-512やその他のバリアントと共に存在します。現在、SHA-2およびSHA-3グループのみが安全と見なされています。

この技術はなぜ重要なのか?

従来のハッシュ関数は、データベースの検索、大規模なファイル分析、データ管理など、広範な用途があります。一方、暗号ハッシュ関数は、メッセージ認証やデジタルフィンガープリンティングなど、情報セキュリティアプリケーションで広く使用されています。ビットコインに関して言えば、暗号ハッシュ関数はマイニングプロセスの不可欠な部分であり、新しいアドレスやキーの生成にも役割を果たします。

ハッシュの真の力は、大量の情報を扱うときに明らかになります。たとえば、大きなファイルやデータセットをハッシュ関数に通し、その結果を使用してデータの正確性と完全性を迅速に確認できます。これは、ハッシュ関数の決定論的な性質のおかげです:入力は常に圧縮され、簡略化された出力)ハッシュ(を生成します。この方法により、大量のデータを保存して「記憶する」必要がなくなります。

ハッシュ化は、ブロックチェーン技術の文脈で特に便利です。ビットコインのブロックチェーンには、主にマイニングプロセスで実行されるハッシュ関連の操作がいくつかあります。実際、ほとんどすべての暗号通貨プロトコルは、トランザクションのグループをブロックにリンクおよび結合し、各ブロック間に暗号的リンクを作成するためにハッシュ化に依存しており、その結果、ブロックのチェーンが作成されます。

暗号ハッシュ関数

再び、暗号技術を使用するハッシュ関数は、暗号ハッシュ関数として定義することができます。一般的に、暗号ハッシュ関数を解読するには、多くの総当たり試行が必要です。暗号ハッシュ関数を「展開」するには、適切な出力が得られるまで入力を試行錯誤で選択する必要があります。ただし、異なる入力が同じ結果を生じる可能性もあり、その場合「衝突」が発生します。

技術的には、暗号ハッシュ関数は安全と見なされるために三つの特性を満たさなければなりません。それらを次のように説明することができます:衝突耐性と第一次および第二次前像攻撃に対する耐性。

各プロパティを説明する前に、それらの論理を3つの短い文で要約しましょう。

  • 衝突耐性:同じハッシュを生成する2つの異なる入力を見つけることが不可能であること。

  • 第一前画像抵抗: 与えられた出力から入力を"逆算"することができないハッシュ関数 ).

  • セカンドプリイメージ抵抗: 最初と同じハッシュを持つ2番目の入力を見つけることができないこと。

(衝突抵抗

前述のように、異なる入力が同じハッシュを生成する場合、衝突が発生します。そのため、ハッシュ関数はそのような衝突が発見されるまで衝突耐性があると見なされます。無限の入力と有限の出力が存在するため、すべてのハッシュ関数には常に衝突が存在することに注意してください。

したがって、ハッシュ関数は衝突耐性があり、衝突を検出する確率が非常に小さく、数百万年の計算を必要とします。このため、衝突のないハッシュ関数は存在しませんが、いくつかは非常に強力で、安定していると考えられます)例えば、SHA-256###。

さまざまなSHAアルゴリズムの中で、SHA-0およびSHA-1グループは衝突が検出されたため、もはや安全ではありません。現在、SHA-2およびSHA-3グループのみが衝突に抵抗があると考えられています。

( 第一プリイメージ抵抗

この性質は、一方向関数の概念に密接に関連しています。ハッシュ関数は、生成された出力を使用して誰かが入力を見つける確率が非常に低い限り、最初の前画像を見つけるために強いと見なされます。

このプロパティは、攻撃者が特定の出力に基づいて入力を推測する必要があるため、前のものとは異なることに注意してください。このタイプの衝突は、誰かが同じ出力を生成する2つの異なる入力を見つけたときに発生します。どの特定の入力が使用されたかに関係なく。

最初の前画像抵抗特性はデータセキュリティにとって重要です。メッセージの単純なハッシュは、追加情報を開示することなくその真正性を証明できます。実際には、多くのウェブサービスプロバイダーやアプリケーションは、テキスト形式で使用するのではなく、パスワードから生成されたハッシュを保存して使用しています。

) セカンドプリイメージ抵抗

このタイプの安定性は、前の2つの特性の間に位置します。第二の前画像攻撃は、以前に知られている他の入力を使用してすでに生成された出力を生成することが可能な特定の入力を見つけることから成ります。

言い換えれば、第二前画像攻撃は衝突を検出することを含みますが、同じハッシュを生成する2つのランダムな入力を見つける代わりに、攻撃は他の入力によって既に生成されたハッシュを再現できる入力を見つけることを目的としています。

したがって、衝突耐性のあるハッシュ関数は、常に衝突を必要とするため、第二前像攻撃に対しても耐性があります。しかし、衝突許容関数に対して第一前像攻撃を行うことは依然として可能であり、これは出力を持つ入力を探索することを含みます。

マイニング

ビットコインマイニングには、ハッシュ関数を使用して実行される多くのステップがあります。これには、残高の確認、取引の入力と出力のリンク、すべての取引をブロックにまとめてメルクルツリーを形成することが含まれます。しかし、ビットコインブロックチェーンが安全である主な理由の1つは、マイナーが次のブロックの正しい解決策を見つけるためにできるだけ多くのハッシュ操作を実行しなければならないことです。

マイナーは、候補ブロックのハッシュを生成する際に、いくつかの異なる入力を使用しなければなりません。正しく生成された出力がハッシュの形で特定の数のゼロで始まる場合にのみ、ブロックを検証することが可能です。ゼロの数はマイニングの難易度を決定し、ネットワークのハッシュレートによって変動します。

この場合、ハッシュレートはビットコインマイニングに投資する計算能力の尺度です。ハッシュレートが増加し始めると、ビットコインプロトコルは自動的にマイニングの難易度を調整し、ブロックをマイニングするのに必要な平均時間が約10分になるようにします。複数のマイナーがマイニングを停止することに決め、ハッシュレートが著しく低下した場合、マイニングの難易度は一時的に計算を容易にするように調整され、平均ブロック形成時間が10分に戻るまで###。

マイナーは衝突を探す必要はないことに注意してください。なぜなら、特定の数のゼロで始まる有効な出力###を生成できるいくつかのハッシュがあるからです。したがって、特定のブロックに対していくつかの可能な解があり、マイナーはマイニングの難易度によって決定される閾値に従って、それらのうちの1つだけを見つける必要があります。

ビットコインのマイニングはコストがかかる作業であるため、マイナーはシステムを欺く理由がありません。なぜなら、そうすることで大きな財務的損失を被るからです。その結果、ブロックチェーンに参加するマイナーが増えるほど、それはより大きく、より強力になります。

まとめ

ハッシュ関数は、特に大量のデータを扱う際にコンピューティングの主要なツールの一つであることに疑いはありません。暗号と組み合わせることで、ハッシュアルゴリズムは非常に役立ちます。なぜなら、さまざまな方法でセキュリティと認証を提供するからです。したがって、暗号ハッシュ関数はほぼすべての暗号通貨ネットワークにとって重要であり、その特性や動作メカニズムを理解することは、ブロックチェーン技術に興味のある誰にとっても確かに有益です。

IN1.69%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)