ブロックチェーン/レベル II · 仕組み/2.3 ブロックとチェーン/レッスン 5
2016ブロックごとの難易度調整
時計を動かし続ける2週間周期の調速機
用意するもの難易度の履歴を表示するブロックエクスプローラーインターフェース比率計算用の電卓
問い
- なぜネットワークはブロックごとではなく、2週間ごとに難易度を調整するのでしょうか?
- 中央機関がアップデートを発行しなくても、分散型システムはどのようにして数学的な補正に合意できるのでしょうか?
- 世界のハッシュパワーが大幅に低下した直後の数日間、ブロック生成の速度はどうなるのでしょうか?
探究
- ビットコインのセキュリティモデルは、1ブロックあたり約10分という安定したリズムに依存しています。このペースによって、トランザクションのファイナリティと、ネットワークの混雑やリソース消費とのバランスが取られています。しかし、マイニングハードウェアは急速に進化し、ASICは時間とともに指数関数的に効率が向上します。何も手を打たなければ、計算難易度が固定されたままでは、計算能力の増大に伴ってブロックが数分ではなく数秒で見つかるようになってしまいます。このような不安定さはチェーンのセキュリティ特性を揺るがし、承認時間に関するユーザーの見通しを難しくするでしょう。
- このリズムを保つため、ビットコインはリターゲティングと呼ばれる自動的なフィードバックループを実装しています。2,016ブロックごと(平均で14日間)に、すべてのノードが独自にプルーフ・オブ・ワークのターゲットを再計算します。2,016という数は、14日に1日あたりの10分間隔の数144を掛けたものです。この頻度はバランスの取れたもので、ハッシュレートの大きな変化に対応できるほど短く、ネットワーク参加の一時的な変動や異常をならすのに十分な長さがあります。
- この計算では、直前の2,016ブロックのマイニングに実際にかかった時間を、想定される20,160分と比較します。式は「新しいターゲット=古いターゲット×(実際の時間/目標時間)」です。マイナーが平均10分より速くブロックを見つけていれば実際の時間は短くなり、1未満の比率がターゲットを下げて難易度を上げます。逆に、ブロックに時間がかかっていればターゲットが上がり、パズルが易しくなります。この比例的な調整により、平均は10分の目安へと戻っていきます。
- 短期的なショックによる極端な変動を防ぐため、調整幅は1サイクルあたり、どちらの方向にも4倍までに制限されています。ハッシュレートの変化がどれほど大きくても、1回の調整で難易度を変えられるのは最大で4倍、または4分の1までです。この上限により、歪んだタイムスタンプによる被害が抑えられ、劇的な市場の出来事やハードウェアの移行期にも変化が緩やかに保たれます。
- 顕著な例は、2021年7月、中国が暗号資産マイニングを禁止した後に起きました。世界のハッシュレートが急落し、ブロックが見つかるまでの時間が10分を大幅に上回りました。その後の難易度調整は、低下した計算能力を反映して28%近く下がり、ビットコイン史上最大の下方修正となりました。この迅速な補正により、平均ブロック時間は1サイクルのうちに目標値近くまで戻り、現実世界の経済的・規制上のショックに対するこの仕組みの応答性が示されました。
- 調整と調整の間、ネットワークは固定された難易度で動作します。この2週間の期間中にハッシュレートが変化すると、次のリターゲティングまでブロック時間は10分からずれます。この遅れは定期的な調整に本来伴うトレードオフです。ほかのチェーンの中には毎ブロック再調整するものもあり、ビットコインのシンプルさと予測可能性と引き換えに、より速い応答を得ています。ユーザーやマイナーは任意のブロックエクスプローラーでこのサイクルを確認でき、次の調整までの残りブロック数や、現在のマイニング速度に基づく推定変化率が表示されます。
重要な事実
- 難易度は2,016ブロックごと、およそ2週間ごとに再調整されます。
- 調整式は、実際の経過時間と想定される20,160分との比率で、古いターゲットをスケーリングします。
- 極端な変動を防ぐため、難易度の変化は1サイクルあたり4倍までに制限されています。
- 元のコードにあるoff-by-oneエラーにより、計算には2,015個の間隔が使われ、難易度が高くなる方向へのごくわずかな偏りが生じています。
- 2021年7月の調整は、ビットコイン史上最大の下方修正で、28%近くに達しました。
- 各ノードがこの計算を独自に行うことで、中央による調整なしにコンセンサスが確保されます。
演習 九・六・三・一
9集めるブロックエクスプローラーの履歴から、過去に行われた9回の難易度調整を、日付と変更率を記載してリストアップしてください。
6まとめる9つを規模と方向によって6つにグループ分けしてください:大幅な上昇、中程度の上昇、小幅な上昇、小幅な下降、中程度の下降、大幅な下降。
3絞り込む6つを、最大規模の調整を引き起こす3種類の出来事に絞り込んでください。
1結晶化するビットコインの2週間サイクルが、分散型の環境で応答性と安定性をどのように両立させているかについて、文を1つ書いてください。
事実確認
日付、数字、主張は、下記に記載された公表資料と照合して確認しました。
- Bitcoin Core source code, pow.cpp (CalculateNextWorkRequired)
- A. M. Antonopoulos & D. A. Harding, Mastering Bitcoin, 3rd ed. (2023), ch. 12
- Bitcoin difficulty history, block 689,472 (July 2021)