-
0 Tweet
-
ビットコインキャッシュのマイニングにおける難易度調整とは?

ビットコインキャッシュのマイニングでは、計算の難易度が常に調整されるシステムが働いています。今回はビットコインキャッシュのマイニングの仕組みについてのおさらいと、どのような仕組みで難易度が調整されているのかについてわかりやすく解説します♪

こんにちはー!
夏休みはずっと家でゴロゴロしています!ゆかりです( *´艸`)
学校がずっとお休みなので、心も体も休まります。
夏休みがずっと続けばいいのになー(。-`ω-)
先日、ビットコインキャッシュのマイニングについて書いた記事の中で、難易度調整システムというものを紹介しました。
そのときはマイニング全般についての記事だったので簡単にしか説明できなかったのですが、今日はそのあたりを詳しく書いていきたいと思っています。
ビットコインキャッシュの難易度調整システムは、ビットコインと違うポイントのひとつです。ビットコインと比較するときに重要なポイントとなるので、よければ参考にしてみてくださいね♪
目次
ビットコインキャッシュのマイニングの仕組み
本題に入る前に、簡単にビットコインキャッシュのマイニングについておさらいしておきたいと思います。
詳しくは、以下の記事で解説しているので参考にしてみてくださいね。
ビットコインキャッシュは、最終的に2100万枚が発行される仕組みになっています。これははじめから一気に発行されるのではなく、マイニングという作業を行うことで少しずつ発行されていきます。
そしてマイニングにはもうひとつ、取引データを記録する「ブロック」の管理という役割もあります。
ブロックの管理をすることで報酬が発生し、その報酬が新規ビットコインキャッシュの発行になるということなんです。

ちなみに2018年8月現在の報酬は、12.5BCHです(‘ω’)
ビットコインキャッシュの場合、10分に1回ブロックが生成され、その都度12.5BCH(ビットコインキャッシュの単位)が新規発行されているということです。
ビットコインキャッシュのマイニングは、PoW(プルーフ・オブ・ワーク)というシステムが採用されています。
PoWでは、ハッシュ関数を使ってブロックを暗号化する作業を行います。ハッシュ関数とは、一方通行で暗号化ができる関数のことです。
この暗号化の作業は、非常に膨大な計算が行われます。
膨大な計算をしたのち、一番早く正解を見つけることができた人に、ブロックを生成する権利(発言権)が与えられます。
このブロックを生成するための計算作業が、採掘をしているように見えることから、マイニング(採掘)と呼ばれます。また、マイニングを行う人のことをマイナー(採掘者)と呼びます。
ビットコインキャッシュのマイニングについてまとめると、
- マイニング方式:PoW(プルーフ・オブ・ワーク)
- ブロック生成時間:約10分
- ブロック報酬:12.5BCH(2018年8月現在)
- 発行枚数上限:2100万BCH
ということになります(*’ω’*)
ビットコインキャッシュの難易度調整とは?
「2017年にハードフォークで難易度調整システムが修正された」というニュースを見て、難易度調整システムって何だ?と思った人は多いのではないでしょうか。
先ほど解説した通り、ビットコインキャッシュはマイニングによってブロックの管理がなされており、PoWによる作業が行われています。
知っている人もいるかと思いますが、ビットコインキャッシュのブロック生成時間は約10分と決まっています。1時間で6つ前後のブロックが生成されるということです。
これは誰かが管理して10分になっているのではなく、システムが自動的に10分になるように調整しているためなんですね。
この、ブロックの生成時間を調整するシステムこそが、難易度調整システムのことなんです。

計算難易度が変わることでブロックの生成時間が変わるんです(。-`ω-)
実は、PoWでのハッシュ関数の計算は、正解がひとつではありません。膨大な計算ののち、複数ある正解のひとつを見つければ完了です。
めっちゃ簡単な例を出すと、「ハッシュ関数を計算して1~100までの数字を導き出しなさい。」というようなもの。そして計算をしていくと、1~100,000,000というような膨大な数の解が出てくるので、1~100の解がみつかるまでひたすら計算を行います。
もしこの正解が1~100ではなく、1~10になったら、かなり難易度は上がりますよね?90でも不正解になりますし、20でも不正解です。反対に正解が1~1,000になったら、計算はとても楽になるはずです。
ビットコインキャッシュのPoWでは、このような計算の難易度調整が常に行われています。
計算する人たちが早く計算できるような力をつけていれば難易度は高くなり、反対に計算する人が少なくなるなど、計算力が落ちてくれば難易度は低くなります。
このようにして、常にだいたい10分くらいで正解が見つかるような調整がなされているということなんです。
ちなみに、この計算力のことを「ハッシュレート」というので、ぜひ覚えておいてくださいね♪
ビットコインキャッシュの難易度調整には問題点があった
現在はハードフォークによって改善されたビットコインキャッシュの難易度ですが、誕生当初はいくつか問題点を抱えていました。
ちなみに、ハードフォークとはシステムのアップデートのことです。詳しく知りたい人は、以下の記事が参考になるかと思います♪
ビットコインキャッシュの誕生当初はNDA
ビットコインキャッシュのハードフォークが行われる前、つまりビットコインキャッシュが誕生した2017年8月から11月までの間、難易度調整システムはビットコインと同じNDAを採用していました。
NDA(Normal Difficulty Adjustment)とは、2週間に1回難易度が調整されるというシンプルなシステムでした。
ビットコインキャッシュは、元はビットコインからハードフォークによって誕生した通貨なので、そのシステムを受け継いでいたんですね。

でもこのシステムには、ちょっとした問題点がありました。
ビットコインは世界中にマイナーがたくさんいたので、安定して計算が行われ、ブロックの生成も約10分に1回きちんと行われていました。
しかしビットコインキャッシュは誕生当初、マイナーの数が少なく、ハッシュレートが高くなったり低くなったりと不安定でした。
難易度が高くなりすぎて、誰も計算を行わず、長時間ブロックが生成されないということもありました。
ブロックは10分ごとに生成されるのに、2週間に1回の難易度調整では全然間に合っていなかったのです。
ビットコインキャッシュにはEDAを導入
実は、ビットコインキャッシュを開発した人は、この問題についてはある程度想定済みでした。
大勢のマイナーがビットコインからビットコインキャッシュに乗り換えてくれないということは、初めからわかっていたんですね。
そこでビットコインのハードフォーク(ビットコインキャッシュ誕生)のときに、EDAというシステムも導入していました。
EDA(Emergency Difficulty Adjustment)とは、ブロックの生成が12時間のうちに6ブロック以下だった場合、計算の難易度が20%下がるというシステムです。
ビットコインキャッシュが「ビットコインよりもハッシュレートが不安定になる」と考えた開発者が、それを考慮して導入したシステムです。

しかし、実はこの難易度調整システムでも問題がありました(;´・ω・)
ビットコインキャッシュのマイニングは膨大な計算を行うため、高額な電気代がかかってしまいます。もちろん計算が簡単になれば、その分コンピュータの負担は減り、電気代は安くなります。
そんなこともあり、世界的に見て電気代の安い国(中国など)で、ビットコインやビットコインキャッシュのマイニングが頻繁に行われていたのです。
そこで力を持った集団が、意図的にハッシュレートを操作しているという疑惑が発生していました。
難易度が下がれば計算が楽になって電気代が安くなるので、マイナーたちが結託してハッシュレートを落としたのではないかと推測されていました。
これではやはり安定したブロックの生成は期待できず、取引の遅延などを招いてしまう結果になったのです。
ビットコインキャッシュのハードフォークでDAAを導入
これらの問題点を解決すべく、2017年11月にビットコインキャッシュがハードフォークを実施し、DAAを導入しました。
DAA(Difficulty Adjustment Algorithms)は、これまでのNDAやEDAと比べて、よりこまめに難易度が調整されるシステムになっています。
具体的には、600秒(10分)に1回、ハッシュレートに合わせた難易度に調整されるようになっています。つまり、ブロックがひとつ生成されるごとに難易度が調整されるということです。
これにより、突然のハッシュレートの変化に即座に対応できるようになり、またハッシュレートが安定しているときに突然難易度が変更されることもありません。
ビットコインキャッシュのブロック生成はなぜ10分に1回なのか
ビットコインキャッシュのマイニングでは、約10分に1回ブロックが生成されるように、自動的に難易度が調整されるというお話をしてきました。
では、一体なぜ10分に1回なのでしょうか。
取引の処理速度を上げるために、1分に1回にすればいいのに。と思いませんか?

これは、マイニングの仕組みが関係しているんです(`・ω・´)
ビットコインキャッシュのマイニングは、PoWによる計算が世界中で行われ、正解を最初に出したマイナーがブロックを生成できます。
世界中にマイナーがいて、「せーの」で計算をし始めます。もちろん、正解が同時に見つかることもあります。
その場合、ブロックチェーンは分岐してしまい、管理が混乱してしまうことに繋がるのです。
ブロックが分岐しても、最終的には一本のチェーンに戻りますが、そう何度も分岐していてはブロックチェーンの信用問題に関わります。
そしてこのブロック分岐問題は、ブロックの生成時間が短ければ短いほど発生しやすくなるということです。
難易度を低めに設定すれば、ブロックの生成時間を1分にすることも可能です。しかしそれでは計算が簡単すぎて、多くの人が同時に正解を見つけてしまうかもしれません。
反対に計算難易度を高くすれば、ブロックの生成時間を長くすることも可能です。たとえば、30分に1回ブロックが生成できる難易度にすることもできます。
生成時間を長くすると、正解が同時に見つかる可能性が極端に低くなります。
その代わり、ブロックがなかなか生成されず、取引成立までの時間が長くなってしまいますよね。さらに、計算に電気代がかかりすぎてマイナーが赤字になってしまい、最終的にマイニングが全然されないということになってしまう可能性もあります。

ということで、ブロックの生成時間は短くてもダメだし、長すぎてもダメなんです。
つまり、ブロックの生成時間の「10分」というのは、ブロックの健全な運営を保ちながら、ある程度の取引スピードも確保している、ちょうど良い時間ということなんですね(*^^)
ただ、これに関しては今でもいろいろな議論が交わされています。実際にブロックの生成時間を2分や2分半なんかに設定している仮想通貨も数多く生み出されています。
ビットコインキャッシュからハードフォークによって誕生したビットコインキャンディは、ビットコインキャッシュの実験として生み出された通貨で、生成時間は2分に設定されています。
ビットコインキャンディについて詳しく知りたい人は、以下の記事を読んでみてくださいね♪
このことから、ビットコインキャッシュも将来的に、ブロック生成時間が短くなる可能性は十分あり得ます(`・ω・´)

今は0承認システムが完成しつつあるので、ブロックの生成時間を短くするメリットが少なくなってきているのも事実です。
ビットコインキャッシュの計算難易度調整は完璧?
当時はマイナーの数が少なかったことで、全然ブロックが生成されない(取引が承認されない)ということが起きていました。
今ではビットコインキャッシュのマイナーも多くなったので、難易度の調整システムはあまり注目されなくなっています。
ビットコインキャッシュの計算難易度調整は完璧とまでは言えないかもしれませんが、通貨の特徴(即時決済など)に合ったとても良いシステムだと思います!
それでは今日も、最後まで読んでいただきありがとうございましたー(`・ω・´)
【この記事を書いた女子会メンバー】

フォローする
Follow @twitter-
0 Tweet
-