ハッシュはデータの指紋のようなものです。ハッシュ関数に任意の入力を与えると、固定長の文字列が返されます。同じ入力であれば常に同じハッシュが生成されます。入力の文字を1つ変更すると、ハッシュは完全に変わります。この特性により、ハッシュは検証に役立ちます。ファイルのハッシュを既知の正しい値と比較することで、ファイルが改ざんされていないことを確認できます。ビットコインはSHA-256を使用し、イーサリアムはKeccak-256を使用しています。各ブロックには前のブロックのハッシュが含まれており、それがチェーンを連結しています。
ハッシュは一方向です。ハッシュから元の入力を逆算することはできません。そのため、パスワードや証明に使用されます。マイナーは、特定の目標値以下のハッシュを見つけるために競い合います。マイナーは、nonceを変更し、ブロックヘッダーをハッシュ化し、結果を確認します。このプロセスは、大規模な推測と検証です。有効なハッシュを見つけることは、作業が行われたことを証明します。それを検証するのにほとんど労力はかかりません。この非対称性が、プルーフ・オブ・ワークの基盤となっています。ハッシュ関数は、ウォレットアドレスの生成やトランザクションの整合性の検証にも使用されます。
ハッシュ関数のプロパティ
- 決定論的 ― 同じ入力は常に同じ出力を生み出す
- 計算が速い ― 検証コストが安い
- 原像耐性 — ハッシュを反転できない
- 雪崩効果 ― 入力がわずかに変化すると、出力が全く異なる
ハッシュは暗号化ではありません。それは一方向のダイジェストです。鍵はなく、復号化する方法もありません。
Comments
No comments yet. Be the first to share a thought.
Leave a comment