ハッシュ関数は入力データをハッシュ値、別名ダイジェストへ変換するアルゴリズムです。同じアルゴリズムに完全に同じバイト列を入力すれば、常に同じ結果になります。一般的なブロックチェーンのハッシュ関数は、入力の長さが変わっても固定長の結果を生成します。
暗号学的な強度とは
暗号学的ハッシュ関数は、ダイジェストから入力を見つけたり、同じダイジェストを持つ異なる入力を見つけたりする計算が現実的でなくなるよう設計されています。衝突は数学的には可能です。安全性はアルゴリズムと攻撃に使える資源に依存し、すべての入力に固有の出力があるという意味ではありません。
ブロックチェーンでの用途
ハッシュは取引の識別、ブロックヘッダーの連結、マークルツリーでのデータ集約に使われます。SHA-256は256ビットの結果を生成し、通常は64桁の16進数で表示します。入力の小さな変更でも一般にダイジェストが大きく変わるため、信頼できる参照値と比較できます。
すべてを隠す仕組みではない
ハッシュ化は復号可能な暗号化ではなく、復号鍵も使いません。予測可能な入力は候補をハッシュ化して照合できます。一致するダイジェストは参照データとの関係を示しますが、データの真実性や作成者の信頼性は証明しません。