ビットコインの仕組み「ハッシュ関数」とは

ビットコインの仕組みのひとつである「ハッシュ関数」。

仕組みを学ぶうえでハッシュ関数についても理解しておくと良いでしょう。

仮想通貨の管理は、さまざまな仕組みを基に成り立っています。

ここでは、ハッシュ関数の特徴と、ビットコインにおけるハッシュ関数について解説していきます。

ハッシュ関数とは

ハッシュ関数とは、一種の暗号方式であり、入力した値に対して、全く異なる値が出力されます。

ブロックチェーンでは、さまざまな場面でハッシュ値を使用し、暗号化しています。

ハッシュ値とは、データを変換し、全く別の文字列や値に変換したもののことで、一般的にECサイトなどのWebサービスなどのパスワードは、ハッシュ化されています。

これにより、事業者はパスワードを知る術がなく、個人情報の漏洩を防ぐことができます。

ハッシュ関数の特徴

ここからは、ハッシュ関数の特徴について解説していきます。

一方向関数

ハッシュ値を見て、元の値を探し出すことは困難です。

このことを「不可逆性」と呼びます。

簡単に言えば、一方向だけの関数ということです。

この性質があるからこそ、強い暗号化が実現するのです。

固定出力値

入力値の長さに関係なく、固定の出力値が出力されるのが固定出力値です。

たった1文字でも、100文字の入力値であっても、同じ長さの出力値となります。

同じ値が出力

同じ値のときには、同じ値が出力される特徴があります。

つまり、1文字でも違えば全く無関係の値が出力されるということです。

ただ過去に、「SHA-1」というハッシュ関数から、異なる入力値であったにも関わらず、同じ出力値が出力されたことがありました。

そう考えると、多少暗号化能力に不安を抱くこととなるため、ハッシュ関数の利用は、より強い暗号化ができるものを選ぶ方が良いでしょう。

ビットコインにおけるハッシュ関数

ビットコインが採用しているハッシュ関数「SHA-256」の場合は、0と1によって構成された256桁の固定の出力を行います。

ビットコインでハッシュ関数が利用されているものはふたつあります。

それは、「電子署名」と「マイニング」です。

それぞれ解説していきます。

電子署名

電子署名とは、特定の人だけが情報にアクセスできる「公開鍵暗号」と、文字列を固定の値に変換する「ハッシュ」を利用した技術のことです。

秘密鍵で暗号化されている文書は、公開鍵を使うことで復号化できるしくみを利用し、ビットコインを送金するときには、送受信者の間で取引の改ざんや偽造が行われていない正当なものであることを証明しています。

ハッシュ関数は、秘密鍵から公開鍵を作成するときに使われます。

送信するデータを基にハッシュ値を算出し、秘密鍵によって暗号化します。

送信相手には、データ原本と電子署名(ハッシュ値)を送ります。

受け取る側は、送信者の公開鍵を使って電子署名を復号化し、データ原本のハッシュ値を算出し、比較します。

双方のハッシュ値を比較し、情報が一致すればデータを送った人が本人であることを確認できるしくみとなっています。

マイニング

マイニングとは、取引履歴を記録しているデータベース「ブロックチェーン」を維持・管理する作業のことです。

ハッシュ値は、ブロックチェーンの整合性をチェックするために利用されており、ビットコインを取引するときの決済承認において、マイナー(発掘者)がハッシュ値を求める膨大な量のマイニング(発掘)が必要です。

ビットコインは、「SHA-256」を採用しており、256ビット(=32バイト)のハッシュ値を得ることができます。

マイニングでは、ブロックチェーンの末尾のブロックの「ハッシュ値」「新しい取引情報」「32ビットの任意の値であるナンス」の3つをSHA-256に入力し、特定のハッシュ値が出るまで計算を繰り返します。

まとめ

仮想通貨を管理するときに非常に大きな役割をしているハッシュ関数。

これがどのような存在で、どのような特徴があるのかが理解できたかと思います。

仮想通貨を保有するのであれば、このような基礎知識は確実に身につけておくようにしましょう。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA