ハッシュレートとは? ~マイニング目線で見るブロックチェーン~

マイニングをしていると当たり前のように目にするハッシュレート。

私たちマイナーからしたら「その数値が大きければ大きいほどたくさん掘れるので報酬が大きい」という認識です。

新しいASICがリリースされたら、ハッシュレートは必須チェック項目です。

ハッシュレートは1秒間のマイニング能力を数値化したものです。

この記事を書いている2018年4月7日現在、ビットコインを掘るASICだとANTMINER S9のハッシュレートが最も大きく「13.5TH/s」です。

環境によっては「14TH/s」出るみたいです。

単位の「TH/s」を分解すると

T(テラ:ギガの1000倍)H(ハッシュ)/(パー)s(セカンド:秒)

ANTMINER S9の「13.5TH/s」は13,500,000,000,000H/s(13兆5000億H/s)となるわけで、なんともパワーがありそうです。

ここまではマイニングをやっている人なら感覚で理解していると思います。

マイニングを理解すると、ハッシュレートのことが更に理解できます。

マイニングをゆるーく理解

送金や売買など、とにかくビットコインのやりとりはブロックチェーンを使ったデータ移動です。

そのやりとりが不正なものではなく正当な取引であるということを証明する必要があります。

証明はコンピュータを使用して行いますが、この承認作業のことを「プルーフ・オブ・ワーク(PoW)」といいます。

「プルーフ・オブ・ワーク」が完了すると、報酬として新規にビットコインが発行され作業完了者が受け取ります。

この一連のプロセスが「マイニング(採掘)」です。

作業としてのマイニング

マイニングを作業面から見ると

  1. 直近の約10分間に出された送金リクエストの内容が新しいブロックに記録される。
  2. そのブロックを発見し、リクエスト内容がすべて正しいということを検証する。
  3. その上でブロックごとに設定されている「計算問題」を解く。
  4. 計算問題が解けたら正式なブロックとして認められ、ブロックチェーンの最後尾につながる。

マイニングマシンは延々とこの作業を繰り返します。

計算問題とハッシュ値とアルゴリズム

マイニングで解くべき「計算問題」ですが、計算方法と答えは公開されています。

計算方法は「アルゴリズム(algorithm)」と呼ばれ、特定の関数(ハッシュ関数)を用いた計算式です。

ビットコインならアルゴリズムは「SHA256」、ライトコインなら「Scrypt」というアレです。

計算問題の答えは見た目がランダムな文字列で「ハッシュ値(hash)」といいます。

ハッシュ値は「あるランダムな文字列」をアルゴリズムで計算することで導き出されます。

この「あるランダムな文字列」のことを「ノンス(nonce)」といいます。

「計算問題と解く」というのは「正解のノンスを見つける作業」のことです。

一方通行の計算式なのでハッシュ値から逆算することは出来ません。

正解のノンスを見つける競争

正解のノンスを見つける作業はハッシュ値から逆算できないため、ひたすらランダムな文字列をアルゴリズムに放り込んで計算し答え合わせをするしか方法がありません。

公開されているハッシュ値と同じ答えが出るまで繰り返します。

答えが違えばイチからやりなおし。

ここで正解のノンスを見つける熾烈な競争が繰り広げられるわけです。

約10分ごとに新しく作られるブロックはひとつだけ。

そのブロックのノンスを見つけようとするマイニング参加者は無数にいます。

この「ノンス探し競争」に勝利した者だけが、報酬として新規発行されたビットコインをゲットできるのです。

ハッシュレートとは?

誰よりも早く正解のノンスを見つけるには短時間でより多くの文字列を計算しなくてはいけません。

1秒間に計算できる回数を表したものがハッシュレートです。

「1H/s」だと1秒間に1回文字列の計算ができるということになります。

冒頭でANTMINER S9のハッシュレートについて触れましたが、S9のハッシュレートは「13.5TH/s」なので1秒間に13兆5000億回の計算ができるということです。

コンピュータすごすぎ!

マイニングプールとハッシュレート

マイニングプールに参加してマイニングをしている人がほとんどだと思います。

マイニングプールはスケールメリットを使ったマイニング方法です。

個人の小さなハッシュレートで不毛な争いをするよりも、皆が集まり大きなハッシュレートで確実に掘って分配したほうが良いという考えですね。

世界中にはマイニングプールがいくつもあります。

直近24時間のハッシュレートシェアは以下の通りです。

シェア1位はBTC.com、続いてAntPool、ViaBTCとトップ3は中国勢で全体の約50%を占めています。

私が愛用しているSlushPoolは5位です。

「あれ?NiceHashが載っていないぞ!?」と思われた人、NiceHashはマイニングプールでは無いですからね。

ハッシュレートのシェアが高いということは当然ですがそれだけ効率的にマイニング出来るので発見するブロックの数も多いです。

直近24時間のマイニング実績は以下の通りです。

「Hashrate」がプール毎の総ハッシュレート、「Blocks Mined」の数値が実際にマイニングしたブロックの数です。

ハッシュレートシェア1位のBTC.comはさすがマイニングブロック数も一番多いです。

大きなプールに参加をすれば、発見できるブロック数が多くなります。

反面、自分のマシンのハッシュレートがプール全体に占める割合が小さいので分配される1ブロックあたりの報酬は少なくなります。

小さなプールだと発見できるブロック数は大きなプールに比べ少なくなります。

反面、自分のハッシュレートがプールに占める割合が大きく、分配される1ブロックあたりの報酬は多くなります。

まとめ

以上、ぼんやりとですが自分なりにいろいろと理解してみました。

ぼんやりでも知っておくとプールのダッシュボードや、他プールの情報などから見えるものが多くなります。

高いお金を払って購入したマシンが「一体何をしているのかわからない」という状態は気持ち悪いですからね。

もし間違えなどがありましたら、ご指摘お願いします。