ハッシュ (Cryptographic Hash Function)

編集:
安藤 啓明 (Hiroaki Ando)

ハッシュとは、任意の長さの入力データを関数で変換することで得られる、固定長のデータのことです。ハッシュを出力するための関数をハッシュ関数と呼びます。

入力データの元の長さやファイルサイズに関係なく、ハッシュ関数によって出力されるハッシュは常に同じ長さです。ハッシュ関数は一方向にしか変換できない性質を持つため、ハッシュから元データを推測することはできません。しかし、異なる元データから同じハッシュが出力されることはないため、ハッシュが異なる場合は元データも異なるものであることを検証できます。そのためハッシュ関数は、メッセージの整合性のチェックや認証といったタスクのために、コンピューティングシステムで一般的に使用されます。

ハッシュやハッシュ関数は、暗号資産 (仮想通貨) においても重要な役割を果たしています。ビットコインでは「SHA-256」ハッシュ関数が使われており、これはどの長さの元データからでも256ビットのハッシュを算出できるというものです。トランザクションの検証や新規の通貨を発行するのに必要なマイニングでハッシュの計算は行われています。ハッシュは疑似乱数であり、ハッシュ関数を実行する前に入力を予測することは不可能なため、マイナーは実行したマイニングを証明することでのみ、新規の通貨を得ることが可能です。