暗号通貨(仮想通貨)取引のdifficulty(採掘難易度)とは一体なに?

暗号通貨を知る

暗号通貨(仮想通貨)取引では、取引を承認するために採掘を必要とするものがあります。採掘はマイニングとも呼ばれ、取引を承認し新規ブロックを生成したユーザーに報酬として新規発行コインを付与することをいいます。
マイニングを行うユーザー、いわゆるマイナーにとって、この難易度が大きな意味合いを持つことは容易に想像できるでしょう。このマイニングは暗号通貨(仮想通貨)によって難易度が異なり、また定期的に開発側によって難易度が変更されています。ここでは、マイニングの難易度を示すdifficultyについて解説します。

difficultyとは

difficultyとは、暗号通貨(仮想通貨)をマイニングし新規ブロックを生成する際の難しさを指します。マイニングでは「ハッシュ関数」という演算方法を用いて計算処理がなされており、それによって出された答えを「ハッシュ値」と呼びます。マイニングを行うマイナーは、常にこのハッシュ値を小さくする計算を行っていることになります。
マイナーのマシンが一斉にハッシュ値を小さくするための計算を行い、最小値を出せたものに新規ブロックの生成が許可される、というのがマイニングです。マイニングの難易度はハッシュ値が小さければ小さいほど高く、計算に時間がかかります。
また、マイニング難易度、difficultyは開発側が自由に調整できるという特徴を持ちます。例えば、「マイニングで新規コインをもらって資産を増やしたい」という人が急増し、多くの人がマイニングに参加すると、計算を終えるスピードは速くなるでしょう。ビットコインで言えば、「ブロックは10分に1個作られる」のが通常ですので、スピードが速まり8分、7分とならないよう適宜難易度を調整しているのです。
難易度の変更を行う間隔は暗号通貨(仮想通貨)によって異なりますが、ビットコインではおおよそ2週間に1度のペースで行われています。どんなに高スペックなマシンがマイニングに参加しても、ビットコインなら「10分に1個」、このペースは変更されません。
しかし、厳密に10分ちょうどなのかと言えばそうではなく、「なるべく10分」になるように調整されています。

プルーフ・オブ・ワークとdifficulty

ここからもビットコインを中心として話を進めていきます。ビットコインのコンセンサスアルゴリズムは「プルーフ・オブ・ワーク」というものです。これは「より速くハッシュ値を小さくできたノード」に新規ブロックを発行する権利を与えるというものです。
マイニングをもっと分かりやすく考えてみましょう。例えば、3人のユーザーがそれぞれ2枚のトランプのカードを選び、出た数字を計算したとします。トランプのカードは13が最大値ですから、2枚での最大値は合計で26です。目指すのは「2枚の数字を合計して10より小さい数字」とします。
出すのが速かった順に1人目は「6+7」、2人目は「10+11」、3人目は「5+4」という結果になりました。この3人のうち、マイニングの権利を与えられるのは3人目のマイナーです。マイニングでは、膨大な数のマイナーとそのマシンが日々このようにマイニングの権利を得るための競争を行っているのです。
そして、マイニングは言い換えれば「取引内容をブロックチェーンに記録する」仕事を指します。その取引内容に間違いがないか、不正はないかチェックし記録を行うと、新規ブロックが発行され報酬を得られるのです。プルーフ・オブ・ワークでは、より多く仕事をした人に発言権があります。つまり、ある1人の悪意のあるマイナーがマイニングのほとんどを実行したとき、ブロックチェーンの安全性は崩壊してしまうのです。
そのため、プルーフ・オブ・ワークでのマイニングはひとつの団体や人が占領しないよう、難易度を変更し調節する必要があります。

difficultyによる影響は

開発側がdifficultyをコントロールするのには大きな理由があることが分かりました。しかし、difficultyを調節して難易度を上げすぎてしまうと、再び問題が発生します。ビットコインのブロックチェーンが安全に利用できるのは、それを利用するユーザーがお互いに取引の監視を行うというシステムがあるからです。多くの人がマイニングに参加し、マイナーとして取引を監視することで「悪意のある誰か」にだけ有利な取引が行われないようになっています。
マイニングの難易度を上げ続けると、この均衡を崩す可能性が少なからずあります。どういうことなのでしょうか。ビットコインでは、すでにマイニングの難易度の上昇が問題になっています。難易度が上昇するということは、一般に家庭で組み立てられるマシンではマイニングが行えなくなるということです。
実際に、ビットコインのマイニングは個人が行うものではなく、大きな企業が莫大(ばくだい)な資金を投じて設備をそろえ行うものになっています。一般人がマイニングをしても新規コインを得られる可能性は限りなく低いでしょう。力の小さなマイナーたちが集まってマイニングを行う「マイニングプール」に参加しても、一度の報酬を参加者で分けるため得られる報酬はごくわずかです。
こうなると、個人のマイナーはどんどん離れていき、マイニングに参入する大手企業やマイニングだけを行う団体などしか参加できなくなります。そうなれば、マイニングの難易度は急速に上げられ競争も激化するでしょう。さらに、一部の企業や団体にとって優位になるような不正取引が発生する恐れもあります。
仮に、難易度が上昇しすぎてしまい、マイニングができなくなったり、大きな力を持つマイナーまでもいなくなってしまったりしたらどうなるでしょうか。今度はブロックチェーンの取引自体に影響を及ぼします。取引の承認が行われず、新規ブロックの生成が遅延するかもしれません。新規ブロックの生成が遅延するということは、すなわち送金速度の低下を表します。送金速度が遅くなれば、非中央集権型で送金が速い、というビットコインのメリットがなくなってしまいます。さらに送金手数料が高騰する可能性もあり、ユーザー離れを引き起こすかもしれません。
そうなれば今度は通貨自体の価値が低下します。特に利益を目的として暗号通貨(仮想通貨)取引を行っている人たちが、一気に別の暗号通貨(仮想通貨)へ移行してしまう可能性もゼロではありません。
マイニングの難易度は調整する必要性があるが、難易度は低いままでも高くしすぎても問題が起きてしまうということです。また、現在は2017年に起こった暗号通貨(仮想通貨)の高騰により、ビットコインのように競争の激しいコインでは難易度調整が追いつかないこともあります。

difficultyはマイナーだけでなくユーザーにも関係する

このように、マイニング難易度は常に開発側によって調整され、ブロック生成速度が一定に保たれています。コンセンサスアルゴリズムによってマイニングの方法は異なるものの、マイナーはdifficultyを知ることでマイニングの労力と対価に対するひとつの指標とすることができるでしょう。
採掘難易度が高すぎるものは、暗号通貨(仮想通貨)取引を行うユーザーにとってもデメリットが発生します。マイナーが離れることで送金が遅れたり、場合によっては手数料が上がってしまったりすることがあるためです。マイナーから見ると、マイニングに使うマシンの電気代の方がマイニング報酬よりも高くついてしまうこともあります。これからマイニングを始めるのであれば、マイニング難易度をチェックしてから始めてみましょう。

 

参考: