Difficulty Feature
Pocket

ブロックチェーンを支える分散合意アルゴリズムをこれまでいくつか紹介してきました。

これらの中でも、プルーフ・オブ・ワーク(以下「PoW」)やプルーフ・オブ・ステーク(以下「PoS」)では、マイニングという大量の「計算」を行うことでシステムの安全性が保たれています。この計算の難易度を表すのが「採掘難易度」という概念です。

 

採掘難易度(Difficulty)の概要

採掘難易度とは、Difficulty(ディフィカルティー。英語で「難易度」)とも呼ばれ、マイニングによりブロックを生成する際の「ナンスを見つける難易度」のことです。具体的な計算方法はコンセンサスアルゴリズムによって異なりますが、例えばPoWに関しては「分散ネットワークでの合意を可能にしたコンセンサスアルゴリズム プルーフ・オブ・ワーク」の記事の中の「ナンス探し」の章を見てもらえるとより詳細に分かります。

マイニングの計算概念は、簡単に表すと、これから確定するブロックのハッシュ値がある閾値(Difficulty Target)より小さくなれば良いというものです。これは値が小さいほどマイニングが難しくなります。

採掘難易度は、後述するハッシュレート(採掘速度)と合わせて、ブロックの生成量目安の計算に使用され、ビットコインの場合はブロック生成が平均して10分に1回となるように調整されています。その調整は、2週間に1回行われ、過去2週間の平均ブロック生成時間が10分より長ければ難易度を下げ、短ければ難易度を上げます。これを採掘難易度の「retargeting」と呼んでいます。

採掘難易度はマイニングの競争環境の激化により基本的に上がり続けます。マイニングに参加しているノードの数が増えていることや、ASICなどを使ったマイニング専用のハードウェアが普及し、投入されている計算パワーが増え続けているのが主な理由であると考えられております。すなわち、マイニングはより困難になっています。以下の図はビットコインにおいて、その誕生から現在までの採掘難易度のチャートが示されていますが、指数関数的に難易度が上がっていることがよく分かります。


画像:Difficulty | Blockchain.info

 

採掘難易度とプルーフ・オブ・ワーク

採掘難易度がどのようなものか、簡単な具体例を用いて見てみましょう。

何人かのプレイヤーがそれぞれ2つのサイコロを繰り返し投げて、その和がある閾値(= Difficulty Target)を下回る値を一番最初に出したプレイヤーが勝つ、というゲームを想像してみましょう。これはまさにPoWのアルゴリズムを簡略化したものです。サイコロを投げるという仕事(= マイニング)を行うことによって解(= ナンス)を求めることが出来た人が報酬をもらえます。

例えばtargetを11とすると、プレイヤーは投げた2つのサイコロの和が10以下になるようにしないとなりません。一斉に全プレイヤーがサイコロを投げ続け、最初に和が10以下の組み合わせを出したプレイヤーが勝ちます。サイコロの和の組み合わせ全36通りのうち、和が11以上になる組み合わせは(5,6),(6,5),(6,6)の3通りしかない(和が10以下の組み合わせは36-3=33通りある)ので、難易度(= Difficulty)は33/36であると言えます。

一方、targetが4となった場合、和が3以下にならなければなりません。そのようなサイコロの組み合わせは(1,1)(1,2),(2,1)のわずか3通りしかないので、難易度は3/36であると言えます。これによって、投げるサイコロの回数がとても多くなってしまう(PoWにおける「仕事量」が増える)ことが予想されます。したがって、このtargetを変えることで採掘難易度を変えることができるということです。

この例における難易度は簡単な確率の計算によって求められますが、ビットコインなどの通貨においても、targetを知ることによって統計的に採掘難易度の見積もりを行うことができます。

 

ハッシュレート(採掘速度)

採掘難易度と同様に重要な指標としてハッシュレート(採掘速度)があります、ハッシュレートとは、マイニングマシンの計算力の測定単位です。hash/s(1秒間に計算できるハッシュ数)という単位が使われ、K(キロ)・M(メガ)・G(ギガ)・T(テラ)などの単位と合わせて使われます。ハッシュレートが1TH/sに達したということは、1秒あたり1兆回ハッシュの計算を行うことができるということです。

ハッシュレートと採掘難易度から採掘量が計算できます。採掘を行うデバイスによりハッシュレートが大体決まっているため、マイニングマシンの選定における指標などにこの指標が利用されます。

以下の図は、ビットコインネットワークの総ハッシュレート(全マイナーのパワー)を表しているチャートです。マイニングマシンやビットコインの成長によってハッシュレートはここ数年で指数関数的に増加しています。


画像:Hash Rate | Blockchain.info

採掘難易度のチャートとハッシュレートのチャートの形状が似ていることが見て取れると思います。これはマイニングに注ぎ込まれるパワー量が爆発的に増えているため、それに合わせて採掘難易度も増加しているということを表しています。

 

マイニングの難易度を表す「採掘難易度」はここ数年で急上昇していますが、さらに高密度な半導体集積の余地があると言われており、マイニングパワーは依然として指数関数的に進化すると予想されています。マイニング競争の今後にも注目してみましょう。

Pocket

Aram Mine

Gaiax技術マネージャ。研究開発チーム「さきがけ」リーダー。新たな事業のシーズ探しを牽引。2015年11月『イーサリアム(Ethereum)』 デベロッパーカンファレンス in ロンドンに参加しブロックチェーンの持つ可能性に魅入られる。以降ブロックチェーン分野について集中的に取り組む。

Search