暗号資産(仮想通貨)の基礎

ブロックチェーンに多用される「ハッシュ値」の役割|ブロックチェーンの基礎


本連載の第六回の記事で「トランザクションからハッシュ値が分かるようになっており、それを使ってトランザクションが改ざんされていないことを確認する」という内容の解説をしました。

>トランザクションは誰かに改ざんされないのか|ブロックチェーンの基礎

「ハッシュ値」とは電子データに対する指紋と例えることが多いのですが、いったい何なんでしょうか。

指紋を使った個人認証(なりすましでなく、本物であることの確認)

まず普通の指紋の使い方について思い出してみましょう。

普通の指紋の使い方

指紋は一人ひとり異なることが知られています。
一卵性双生児でも異なる指紋を持っているので個人認証に用いられています。
刑事もののドラマでは犯罪現場の指紋を採取すればその指紋の持ち主が犯人であることの証拠になる、という場面が多々でてきます。

しかし人ごとに異なる指紋を持っているのにその指紋から顔の形を復元して顔写真を作ることはできません。
本人の体から指紋情報を作ることはできますが、指紋情報から本人の体をつくることはできません。
その意味では、指紋は本人の体の特徴を抽出した集約情報になっていると考えられます。

予め本人の指紋を採取しておけば、新たに採取した指紋と比較して、一致していれば本人の指紋であると判断し、不一致なら本人の指紋ではないと判断できます。
スマートホンの指紋認証、銀行ATMの生体認証、海外旅行で入国時に採取や比較がされる指紋検査などで使われていますね。

コンピュータのデータ(ファイル)についても同じことができるとうれしい

コンピュータのデータに対しても同じように固有の集約情報を抽出できるでしょうか。

それを可能とする計算方法が「ハッシュ」と呼ばれる計算であり、その計算結果が「ハッシュ値」と呼ばれる値です。
ブロックチェーン技術ではハッシュ計算としてSHA-256と呼ばれる仕様のハッシュ計算アルゴリズムが多く使われています。

ブロックチェーン技術ではハッシュ計算としてSHA-256と呼ばれる仕様のハッシュ計算アルゴリズムが多く使われています

これは読み込んだデータファイルの全データを使って256ビット(16進数表示では64ケタ)の数字に変換するアルゴリズムです。

ほとんど同じ内容のデータでも1文字違えば全く異なる256ビットの値に変換されるので、例えばブロックチェーンの中に記録されているトランザクションの中の送金額に0を一つ加えたりすると、トランザクションのハッシュ値は全く異なるものです。

しかし、このように計算したハッシュ値から元のデータを復元することはできません。
本物があればそれからハッシュ値が計算できますが、ハッシュ値が分かったからといっても元のデータが分かるわけではありません。
この性質は指紋とそっくりです。

どれほど大きなデータでも、小さなデータでも、256ビットの数値に集約できるので、ブロックチェーンのハッシュ値の領域に、言わば指紋情報として小さなデータ量で記録できます。

記録されたハッシュ値を使う方法

記録されたハッシュ値を使う方法

ブロックチェーン技術ではいろいろな場所でハッシュ値が現れますが、どのように使われるのでしょうか。
トランザクションの改ざん防止の使い方を見てみましょう。

トランザクションの中にはそのトランザクション全体を一つのデータとして見てハッシュ値を格納している場所があります。
その場所はトランザクションの送付元トランザクションの持ち主の秘密鍵で暗号化されているので、対応する公開鍵で復号化した後でハッシュ値を読みます。

そして、トランザクション自身をデータとしてSHA-256によるハッシュ値計算を実行します。
前者のハッシュ値と後者のハッシュ値が一致していればトランザクションが改ざんされていない本物であることを意味し、不一致ならばトランザクションが改ざんされているか、通信エラーなどでデータが化けた、言わば偽物状態であることを意味します。

ブロックチェーン技術の中でたびたび現れるハッシュ値の計算は、以上のようにデジタルデータの指紋のようなものです。

SHA-256アルゴリズムではすべてのデータを256ビットの数値に集約するので情報量が落ちており、原理的には複数のデータが同じハッシュ値を取る場合があります。
しかしながら、意図的に意味のあるデータの形に改ざんした上で同じハッシュ値にすることは事実上不可能です。
このようにブロックチェーンは公開鍵式暗号とハッシュ計算により守られているのです。

Provided by
上野 仁(Hitoshi Ueno)

1984年山梨大学大学院修士課程(計算機科学専攻)修了後、株式会社日立製作所入社。
システム開発研究所、エンタープライズサーバ事業部などで主としてコンピュータアーキテクチャおよび基本ソフトウェアの研究開発に従事。
2015年より第一工科大学東京上野キャンパス情報電子システム工学科教授に就任。
2023年より東京情報デザイン専門職大学教授。
生体信号処理に関するプログラム開発や種々の先端ソフトウェアついての調査研究に興味を持つ。
技術士(情報工学)。
博士(工学)。

>上野 仁氏監修の「ビットコイン(暗号通貨)」に関する記事一覧はこちら


本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。

この記事をシェアする

ホーム » 暗号資産(仮想通貨)の基礎 » ブロックチェーンに多用される「ハッシュ値」の役割|ブロックチェーンの基礎