ハッシュ (Hash)
ハッシュとは、データの保護と検証に使われるアルゴリズムであるハッシュ関数によって生成される、固定長の出力のことです。入力の大きさにかかわらず、ハッシュはそのデータのデジタル指紋のような役割を果たす短い文字列になります。
重要な理由
優れた暗号学的ハッシュ関数には、いくつかの重要な性質があります。同じ入力からは常に同じハッシュが得られます。一文字変えただけでも、まったく異なるハッシュになります。ハッシュから入力を割り出すことや、同じハッシュを持つ異なる二つの入力を見つけることは、事実上不可能です。ハッシュ化はデータの暗号化と説明されることがよくありますが、一方向の処理です。鍵は存在せず、ハッシュから元のデータを復元することはできません。ブロックチェーンはあらゆる場面でハッシュを利用しています。各ブロックヘッダーには前のブロックのハッシュが含まれており、これによってブロック同士がつながり、改ざんがあればすぐにわかるようになっています。トランザクションはそのハッシュによって識別され、マークルツリーに集約されます。また、プルーフ・オブ・ワークのマイニングとは、目標値を満たすブロックハッシュを探す作業です。ビットコインはSHA-256を、イーサリアムはKeccak-256を使用しています。
具体例
「hello」と「Hello」のSHA-256ハッシュは、一文字しか違わないにもかかわらず、まったく無関係に見えます。どちらも十六進数で64文字の長さです。取引所で入金や出金のトランザクションID(TxID)が表示された場合、そのIDはハッシュであり、ブロックエクスプローラーに貼り付ければそのトランザクションを見つけられます。