ハッシュ値は昔から使われているテクノロジー
ハッシュ値は、ブロックチェーンやメタバースのために作られたテクノロジーではなく、昔から存在している既存のテクノロジーになります。
昔から使われているテクノロジーであるハッシュ値とはどのようなテクノロジーでしょうか。
ハッシュ値とは、変換前のデータを特定の計算方法で変換して得られる値のことです。この値は一定の長さ(固定長)で、元のデータに戻すことはできません。
そのため、認証時のパスワードなどセキュリティ面において重要な役割を持つシステムに組み込まれてきました。
ハッシュの変換方式はいくつもある
ハッシュ値はハッシュ関数(ハッシュの変換規格)は1991年に開発されたMD5、1995年から使われ始めたSHA-1 (Secure Hash Algorithm1)、2001年から使われるようになったSHA-2 (Secure Hash Algorithm2)、2015年に公表されたSHA-3 (Secure Hash Algorithm3)と、安全性を高めるために進化してきました。
仮想通貨(暗号資産)の代表的例であるビットコインは、安全性の高さや計算コストのバランスからSHA-256(SHA-2の規格の1つ)が使われています。
MD5やSHA-1はハッシュ値を生成する古い規格であり、現在ではセキュリティ上の理由から使用が推奨されていない場合もあります。
実際にハッシュ値へ変換してみよう!
ハッシュ値に変換する標準規格は多数ありますが、今回はハッシュ値に変換するとどんな感じになるか、実際に読者の方にもいろいろなデータを入れて変換していただけるように、変換後の文字の長さが短い"MD5"と呼ばれる規格でハッシュ値に変換するプログラムを組み込んでみました。
「ハッシュ値のデモボタン」をクリックし、デモページを開いてみてください。データ1とデータ2のテキストボックスに好きな文字を入れて「ハッシュ値に変換する」ボタンをクリックすると、実際のハッシュ値が確認できます。
データ1に「100円」と入力したハッシュ値:a3d79b7ab60b1c9855ad82d7ed78ea0c
データ2に「101円」と入力したハッシュ値:bfc5e072ac2720aef305397bf1d18ef1
100円か101円かの違いで全く異なるハッシュ値となることがわかります。
つまり、
- 短い文字でも、長い文字でも一定の長さ(固定長)になること
- 1文字でも違うと全く違う変換結果になること
ブロックチェーンのデータチェックに使われるハッシュ値
ブロックチェーンとは、ブロック(データ)を繋げて(チェーンのように)管理する仕組みになります。そのブロックチェーンテクノロジーにおいて重要な要素としてハッシュ値があります。
上記の図に記載しているように、Block1とBlock2の連なるブロックがある場合、Block1のハッシュ値をBlock2に格納することで、Block1が簡単に改ざんできないような仕組みになっています。
ブロックチェーンには、最新のブロックが正しいのか承認する作業がありますが、その承認する際にハッシュ値を確認するため、もし改ざんがあった場合は、すぐに改ざんを検知できる仕組みになっています。
まとめ
- ハッシュ値とはどの様なデータでも一定の長さ(固定長)に変換された値
- ハッシュ値は昔から使われているテクノロジー
ハッシュ値は、データを一定の長さに変換し、元に戻せない仕組みです。この技術はセキュリティ分野や認証システムで長く使われてきた基盤技術であり、現在はブロックチェーンの重要な構成要素としても活用されています。
特に、ブロックチェーンにおいてはハッシュ値がデータの改ざん防止や信頼性の向上に寄与しています。この記事を通してハッシュ値の仕組みを理解したことで、ぜひ「ブロックチェーンをサクッと理解する」の記事と合わせて読んでみてください。
ハッシュ値の概念を知ることは、ブロックチェーンや仮想通貨を理解する上での第一歩です。これをきっかけに、他のテクノロジーについても見直してみたいと思います。