本文へ移動
中級者用語を調べる

ハッシュ関数とは

執筆
CRYPTO PORT 編集部
公開日
更新日
読了目安
4 分

結論

ハッシュ関数は、どんな長さのデータを入れても決まった長さの値を返す計算です。入力が1文字変わるだけで出力が全く別物になるため、データが書き換えられていないことの確認に使えます。ブロックチェーンが改ざんを検知できるのは、この性質が土台にあるからです。

要点

  • 同じ入力からは必ず同じ出力が出る
  • 出力から入力を逆算することはできない
  • 入力の僅かな違いで出力が全く変わる
  • ブロック同士をつなぐ鎖の役割を果たす

定義

任意長のデータを固定長の値に変換する一方向の計算。同じ入力からは同じ値が得られ、値から元のデータを復元することは現実的にできない。

ビットコインではSHA-256という関数が使われ、入力が1文字でも1テラバイトでも、出力は必ず256ビットになります。「hello」と「Hello」では出力に共通点がまったくありません。この性質は雪崩効果と呼ばれ、改ざんを隠すことを困難にします。

ブロックチェーンでは、各ブロックが1つ前のブロックのハッシュ値を含んでいます。過去のブロックの中身を1バイト書き換えると、そのブロックのハッシュ値が変わり、それを参照している次のブロックとのつながりが壊れます。以降のブロックすべてを計算し直さない限り、矛盾が残ります。これが「後から書き換えられない」と言われる理由です。

Proof of Work のマイニングも、この関数の使い道の一つです。出力が特定の条件(先頭にゼロが一定個数並ぶなど)を満たすまで、入力の一部を変えながら総当たりで計算します。答えを見つけるには膨大な試行が必要ですが、見つかった答えが正しいかどうかは1回の計算で確かめられます。

注意点

  • · ハッシュ化は暗号化ではないため、元に戻す用途には使えない
  • · パスワードのように候補が少ないデータは、総当たりで推測されうる

関連通貨

次に読む

仮想通貨診断

いくつかの質問に答えるだけ。結果はその場で表示されます。

診断をはじめる