ハッシュ関数とは?

※ このページには広告・PRが含まれています

ハッシュ関数は正確には「一方向ハッシュ関数」と呼ばれ、あらゆる入力値に対して常に同じ固定長の値を返す性質をもつ関数です。ハッシュ関数によって求められる値は「ハッシュ値」と呼ばれ、任意の入力値に対してどんな値が返るか予想ができないことが特徴です。入力データが同じであれば常に同じハッシュ値が出力されますが、少しでも異なるデータを入れるとまったく違う値が得られます。ハッシュ値からは入力データの逆算が現実的にできないという一方向性の特性から、ハッシュ関数は主に検索の高速化やデータ比較処理の高速化、データ改ざんの検出に使われています。

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

ビットコインが採用するSHA-256(Secure Hash Algorithm 256-bit)の場合、0と1により構成された256桁の固定の出力をします。以下では、ビットコインでハッシュ関数が利用されている電子署名とマイニングについて、それぞれ詳しく見ていきましょう。

電子署名

電子署名は、特定の人だけが情報にアクセス可能な「公開鍵暗号」と、あらゆる文字列を固定長の値に変換する「ハッシュ」を利用した技術です。秘密鍵で暗号化された文書は公開鍵を使って復号化できるという仕組みを利用して、ビットコインの送金では送受信者の間で取引の偽造や改ざんがされていない正当なものであることを証明します。

ハッシュ関数は秘密鍵から公開鍵を作成する際に使用されています。まず、送信するデータをハッシュ関数に入れてハッシュ値を算出し、そのハッシュ値を秘密鍵によって暗号化します。送信相手には送信するデータ原本と暗号化されたハッシュ値(電子署名)を送ります。受け取る側は、送信主の公開鍵を使用して電子署名をハッシュ値に復号化し、データ原本のハッシュ値を算出して比較します。両者のハッシュ値を比較し、一致すればデータの送り主が本人であると確認できるという仕組みです。

マイニング

マイニングとは、取引履歴のデータベースであるブロックチェーンを維持・管理していく作業のことです。ハッシュ値はブロックチェーンの整合性を確認するために利用されており、ビットコイン取引での決済承認においてはマイナーがハッシュ値を求める膨大な量の計算(マイニング)が必要となります。

ビットコインはハッシュ関数として256ビット(=32バイト)のハッシュ値を得ることができるSHA-256を使用しています。マイニングでは、ブロックチェーン末尾のブロックのハッシュ値・新しい取引情報・32ビット(1~4,294,967,295)の任意の値「ナンス」の3つをSHA-256に入力して、特定のハッシュ値が算出されるまで計算を繰り返します。

ビットコインの仕組みに関する記事の一覧を見る

ビットコインの購入を検討しているなら

HEDGE GUIDEでは、編集部がビットコインの概要をわかりやすく5つのポイントにまとめてご紹介しています。また、ビットコインを購入できるおすすめの取引所・販売所もご紹介していますので、ぜひ参考にしてみてください。

ビットコイン購入可能なおすすめの仮想通貨取引所・販売所