ハッシュ値は昔から使われているテクノロジー
ハッシュ値は、ブロックチェーンやメタバースのために作られたテクノロジーではなく、昔から存在している既存のテクノロジーになります。
ハッシュ値は変換前のデータから決まった計算方法によって生成される一定の長さ(固定長)の値となり、ハッシュ値に変換されたデータは元に戻すことができないことから、認証時のパスワードなどセキュリティ面において重要な役割を持つシステムに組み込まれてきました。
ハッシュの変換方式はいくつもある
ハッシュ値はハッシュ関数(ハッシュの変換規格)は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"と呼ばれる規格でハッシュ値に変換するプログラムを組み込んでみました。
データ1とデータ2のテキストボックスに好きな文字を入れて「ハッシュ値に変換する」ボタンをクリックしてみてください。
- 短い文字でも、長い文字でも一定の長さ(固定長)になること
- 1文字でも違うと全く違う変換結果になること
が、わかるのではないかと思います。
Warning: Undefined array key "data_1" in /home/r9704674/public_html/mgate.info/wp-content/plugins/php-everywhere/public/partials/php-everywhere-block-public-display.php(31) : eval()'d code on line 10
Warning: Undefined array key "data_1" in /home/r9704674/public_html/mgate.info/wp-content/plugins/php-everywhere/public/partials/php-everywhere-block-public-display.php(31) : eval()'d code on line 10
データ1()のハッシュ値:5c8db03f04cec0f43bcb060023914190
Warning: Undefined array key "data_2" in /home/r9704674/public_html/mgate.info/wp-content/plugins/php-everywhere/public/partials/php-everywhere-block-public-display.php(31) : eval()'d code on line 12
Warning: Undefined array key "data_2" in /home/r9704674/public_html/mgate.info/wp-content/plugins/php-everywhere/public/partials/php-everywhere-block-public-display.php(31) : eval()'d code on line 12
データ2()のハッシュ値:5c8db03f04cec0f43bcb060023914190
ブロックチェーンのデータチェックに使われるハッシュ値
ブロックチェーンとは、ブロック(データ)を繋げて(チェーンのように)管理する仕組みになります。メタバースの世界において重要なテクノロジーであり、仮想通貨(暗号資産)やNFTなどに使われています。そのブロックチェーンテクノロジーにおいて重要な要素としてハッシュ値があります。
上記の図に記載しているように、Block1とBlock2の連なるブロックがある場合、Block1のハッシュ値をBlock2に格納することで、Block1が簡単に改ざんできないような仕組みになっています。
ブロックチェーンには、最新のブロックが正しいのか承認する作業がありますが、その承認する際にハッシュ値を確認するため、もし改ざんがあった場合は、すぐに改ざんを検知できる仕組みになっています。
まとめ
- ハッシュ値とはどの様なデータでも一定の長さ(固定長)に変換された値
- ハッシュ値は昔から使われているテクノロジー
ハッシュ値に関するイメージが持てたところで、もう一度「ブロックチェーンをサクッと理解する」を読んでいただけると、より理解が深まると思います。