ビットコインのマイニング難易度:2,016ブロックごとの調整の仕組み
ビットコインは、マイナーがネットワークの処理速度を上げられないように設計されています。明日、マシンの数が2倍になったとしても、ネットワークでは平均して約10分ごとに1つのブロックが見つかるようになっています。難易度は、その状態を維持するための調整つまみです。
この記事では、難易度が測るもの、ターゲットとの関係、2,016ブロックごとの調整の仕組み、難易度が設けられている理由、そして難易度の変化が意味すること・しないことを解説します。現在の難易度の数値を引用したり、次回の調整を予測したりはしません。どちらもブロックが見つかる速さに左右されるためです。
マイニング難易度が測るもの
Bitcoin Wikiでは、難易度を、指定されたターゲットを下回るハッシュを見つける難しさを表す指標として説明しています。マイニングは、長く決まった問題を解くというより、宝くじに近いものです。ハッシュを計算するたびに、実質的にランダムな数値が得られ、それがターゲットを下回ればマイナーがブロックを獲得します。下回らなければ、マイナーはノンスを変更して再び試します。
つまり、難易度は計算の複雑さを表すものではありません。成功するまでにマイナーが平均して何回試行する必要があるかを示します。ビットコインの開発者向けドキュメントでは、許容される最低難易度を「難易度1」と定義しており、現在の難易度はこれを基準に表されます。
ターゲットと難易度
ターゲットは、すべてのビットコインソフトウェアで共有される256ビットの数値です。ブロックが承認されるには、ブロックヘッダーのハッシュがターゲット以下でなければなりません。Bitcoin Wikiによると、ターゲットが低いほどブロックの生成は難しくなります。難易度はこれを逆の側から表したもので、難易度が高いほどターゲットは低くなります。ハッシュレートに関する記事でも触れたとおり、Bitcoin Wikiは、ブロックを見つけるには平均して難易度に2の32乗を掛けた回数のハッシュ計算が必要になる、という目安も示しています。
2,016ブロックごとの調整の仕組み
このルールは日数ではなく、ブロック数を基準にしています。Bitcoin Wikiの説明によると、ブロックがちょうど10分ごとに生成された場合は2週間かかる2,016ブロックごとに、すべてのビットコインノードが、実際にかかった時間と目標の2週間を比較します。そして、その割合の差に応じてターゲットを変更します。ブロックが予定より速く生成されていれば、ターゲットが引き下げられ、マイニングは難しくなります。予定より遅ければ、ターゲットが引き上げられ、マイニングは簡単になります。
1回の調整でターゲットが変化する幅は、どちらの方向でも最大4倍です。これにより、大きな変動が防がれます。難易度を設定する人はいません。各ノードが同じルールを使い、ブロックチェーンをもとに独立して算出します。Bitcoin Coreのソフトウェアには、2週間という目標と2,016ブロックの間隔が組み込まれています。
調整のきっかけはブロック数なので、「2週間」はあくまで概算であり、次回の調整を暦上の日付に結び付けることはできません。ブロックが速く見つかれば調整は早まり、遅く見つかれば遅くなります。
ビットコインが難易度を調整する理由
ビットコインのホワイトペーパーでは、その目的が説明されています。ハードウェアの処理速度の向上や、ノードを運用する人々の関心の変化に対応するため、難易度は1時間あたりの平均ブロック数を目標とする移動平均によって決まり、ブロックが速く生成されすぎると難易度が上がります。Bitcoin Wikiはさらに、約10分ごとに1ブロックという安定したペースによって、ネットワークの安定性が保たれ、取引のレイテンシが低くなると説明しています。
ブロック生成のペースが安定していれば、発行スケジュールも安定します。開発者向けドキュメントによると、ビットコインのブロック補助金は210,000ブロックごとに半減します。そのため、年間のブロック数をおおむね一定に保つことで、マイナーがどのようなハードウェアを使っていても、半減期の間隔は約4年に保たれます。
難易度の変化が意味すること・しないこと
難易度が上がった場合、直前の2,016ブロックは予定より速く生成されており、通常はネットワークにより多くの計算能力が加わったことを意味します。難易度が下がった場合は、ブロックの生成が遅かったことを意味します。調整は期間ごとに1回しか行われないため、難易度は最大で1期間分の遅れを伴ってハッシュレートに追随します。
ブロック報酬も供給スケジュールもブロック数を基準にしているため、難易度の変化によってそれらが変わることはありません。変化するのは、各ブロックを見つけるまでに必要な試行回数です。そのため、各マイナーが報酬を得る期待シェアは変わります。難易度はマイニングの状況を示すものであり、ビットコイン価格を予測するシグナルではありません。
WEEXからのお知らせ:難易度の数値は収益予測ではありません
WEEXは、難易度やその調整が示すのはマイニングの競争状況であり、利益が得られるか、価格がどこへ向かうかではないことをユーザーの皆様にお知らせします。難易度や「ネットワークの計算能力」を根拠に利益を約束する宣伝にはご注意ください。マイニングで利益が得られると保証できる人はいません。あなたの代わりに「マイニング」すると持ちかける相手に、シードフレーズや認証コードを決して教えないでください。ここでの情報は金融アドバイスではありません。
まとめ
マイニング難易度は、有効なブロックを見つけるまでに平均して何回試行が必要かを示します。2,016ブロックごとに、各ノードはブロックの生成にかかった時間を2週間という目標と比較し、最大4倍の範囲でターゲットを調整します。これにより、ブロックが約10分ごとに生成される状態が保たれます。難易度は遅れてハッシュレートに追随するものであり、価格については何も示しません。
よくある質問
1. ビットコインのマイニング難易度とは何ですか?
現在のターゲットを下回るブロックハッシュを見つける難しさを示す指標です。難易度が高いほど、有効なブロックを見つけるまでにマイナーが平均してより多くの回数を試行する必要があります。
2. 難易度はどのくらいの頻度で調整されますか?
2,016ブロックごとです。ブロックが10分ごとに生成されれば約2週間ですが、日数ではなくブロック数を基準に数えます。
3. 難易度は正確に2週間ごとに調整されますか?
いいえ。固定されているのは2,016ブロックという数であり、生成にかかる時間はブロックが見つかる速さによって変わります。そのため、次回の調整日を事前に知ることはできません。
4. マイナーが撤退すると難易度はどうなりますか?
ブロックの生成が遅くなり、次回の調整で難易度が下がります。1回の調整で変化する幅は最大4倍です。
5. 難易度が高いほどビットコイン価格も高くなりますか?
いいえ。難易度が示すのはマイニングの状況と、ブロックが見つかった速さです。価格を示すシグナルではありません。