ハッシュ(ハッシュ値)

暗号資産(仮想通貨)におけるハッシュ&ハッシュレートとは?

ハッシュ(ハッシュ値)とは?

ハッシュ(ハッシュ値)とは、ある関数によって変換されたデータのことです。この関数をハッシュ関数と呼んでいます。ハッシュ関数によってデータを計算し、得られた出力値がハッシュということになります。ビットコインを初めとした暗号資産(仮想通貨)の世界ではしばしば使われるハッシュですが、暗号資産(仮想通貨)だけではなく、インターネット一般で広く使われています。たとえば、インターネットで何らかのサイトにパスワードを使ってログインする際、このパスワードはハッシュ化されて保存されています。

ビットコインのような暗号資産(仮想通貨)にとって、ハッシュはとても重要な役割を担っています。特に、ビットコインシステムのデータベースであるブロックチェーン(block chain)に取引データを格納する際、ハッシュやハッシュ関数の存在が欠かせません。

ビットコインを初めとした多くの暗号資産(仮想通貨)では、一般的な取引システムとは異なり中央のサーバーを持っていません。こうした中央サーバーは、データベースに間違いなくデータを格納する機能を担っています。サーバーがないということは、中央の監視装置のない状態でデータの正しさを担保する必要があるわけです。

それが、マイニング(mining)と呼ばれる独自の承認システムです。取引データをブロックチェーンにつなぎこむためには、それにふさわしいハッシュ値を計算する必要があります。マイニングとは、適切なハッシュ値を計算する作業のことです。

ブロックチェーンの中には、何件かの取引データがまとめられた「ブロック」として格納されます。マイニングの過程では、前のブロック末尾にあるハッシュ値、新ブロックの取引データ、ナンス(Nonce)と呼ばれる32ビットの任意のパラメータの3種類をハッシュ関数に入力し、新たな256桁のハッシュ値を算出します。

新たなハッシュ値は、どんな値でもよいというわけではありません。最初の16桁がゼロであるようなハッシュ値だけが、ブロックチェーンにブロックをつなぎこむのに適した値であるというルールになっています。マイニング作業に取り組むマイナー(miner)たちは、このハッシュ値を算出すべく計算作業を続けます。

適切なハッシュ値は、何らかの方程式で簡単に求められるわけではありません。ナンスを何度も変更し、そのたびにハッシュ値を計算するという試行錯誤を繰り返して、適切なハッシュ値とそのためのナンスを発見するのです。いち早く適切なハッシュ値・ナンスの算出に成功したマイナーには、報酬として新たな暗号資産(仮想通貨)が付与されます。

ハッシュの持つ役割と暗号資産(仮想通貨)の改ざん防止について

ハッシュの大きな特徴は、出力値から入力値を逆算できない点です。一般的な関数であれば、出力値と計算方法から入力値を簡単に求められます。しかし、これではデータの外部漏洩や改ざんに弱いため、取引システムの管理には活用できません。ハッシュ関数を用いることで、過去データの改ざんを難しくしています。

また、ハッシュの算出に際して前のブロックのハッシュを入力値として用いているのも重要なポイントです。仮に、既存のブロックにあるデータを改ざんしようとすると、ハッシュも変更する必要があります。ハッシュは、このブロック以降のハッシュにも影響しているため、つじつまを合わせるにはこれ以降のハッシュをすべて変更しなければいけません。その間にも、ブロックは次々とつながれていきます。改ざんするには、現代技術では非現実的とも言えるほどの計算能力を持つマシンを持っていなければならないということです。

もしそれほどの計算能力があるとしたら、わざわざ改ざんするより通常のマイニングを行った方が生産的です。技術的に改ざんを難しくするだけではなく、経済的に改ざんをさせにくくするのが、ビットコインなどの暗号資産(仮想通貨)を支える技術思想のポイントです。

ハッシュレートとハッシュパワーについて

ハッシュやハッシュ関数と関連して、ハッシュレートないしハッシュパワーという言葉があります。どちらも同じ意味を指しています。ハッシュレート(ハッシュパワー)とは、マイニングにおける計算速度を指しています。適切なナンスを探すべく、世界中のマイナーたちが計算を行っているわけですが、その際の1秒当たりの計算速度がハッシュレートです。

ハッシュレートの単位は、「Hash/s」などと表現されます。この場合、1秒間に1回ハッシュを求めるための計算が行われていることを意味します。もちろん、計算能力はこれほど小さなものではないため、M(メガ)やG(ギガ)などを頭につけて表示されるケースが多いです。具体的には、以下のように表示されます。

KH/s:1秒間に1,000回のハッシュ計算
MH/s:1秒間に100万回のハッシュ計算
GH/s:1秒間に10億回のハッシュ計算
TH/s:1秒間に1兆回のハッシュ計算
PH/s:1秒間に1,000兆回のハッシュ計算

ハッシュレートが大きくなるということは、それだけ多くのマイナーが計算能力の高いマシンを使ってマイニングに取り組んでいるということです。多くのマイナーが承認システムに参加しているため、その暗号資産(仮想通貨)に対する信頼性も高まります。ますますシステムに対する攻撃も難しくなり、セキュリティ面の安全性が向上します。

その一方で、ハッシュレートが大きくなりすぎると、個人レベルではマイニング競争に太刀打ちできなくなります。結果として、大資本を持つ企業による中央集権化が進んでしまう可能性があります。

今、暗号資産(仮想通貨)を始めるなら
DMMビットコイン