用語集 / マイニングとコンセンサス
マイニング難易度
別名は難易度、ネットワーク難易度、Mining difficultyです。
- マイニング難易度とは?
- マイニング難易度とは、ブロックが約10分間隔で到着し続けるように、ハッシュレートがどれだけ多くても少なくても、ネットワークが2,016ブロックごとに調整する目盛りのことです。
難易度は、ブロックを見つけることが2009年1月のSatoshiにとってよりもどれだけ難しいかを表す単一の数値です。難易度は2,016ブロックごと、およそ2週間ごとに、直前の2,016ブロックに実際にかかった時間から再計算され、いずれの方向にも最大で4倍までしか動きません。だからこそ、10分ブロックはマイニング能力の100兆倍という上昇を経ても維持されてきたのです。
仕組み
難易度は比率であり、プロトコルはタイムスタンプだけからこれを計算します。その過程のどこにも人為的な入力はありません。
その下にはターゲットがあり、ブロックヘッダーのハッシュはこの256ビットの数値を下回らなければなりません。ターゲットはヘッダー内にnBitsと呼ばれる4バイトのコンパクトなフィールドとして保存されます。難易度は、難易度1のターゲットを現在のターゲットで割ったものとして定義されるため、126兆という難易度が、ネットワークの最初の週の有効なヘッダーよりも126兆倍希少であることを意味します。ノードが実際に確認するのは難易度ではなく、ヘッダーのハッシュがターゲットを下回るかどうかです。難易度が存在するのは、比率は読みやすいのに対し、256ビットのしきい値は読みにくいからです。
難易度の再調整は、2,016の倍数となるすべてのブロック高で行われます。ノードはその期間に実際にかかった時間を取得し、予定された20,160分と比較して、その比率に応じてターゲットを拡大縮小します。このとき、1回の調整で4倍より易しくも4倍より難しくもならないよう制限がかけられます。この計算には有名なoff by one(1つずれ)の誤りがあります。期間はその窓の最初のブロックと最後のブロックの間で測られるため、2,016ではなく2,015の間隔にまたがり、ネットワークは実際には1ブロックあたり約10.0049分を目標としています。これを修正するには丸め誤差のためのハードフォークが必要になるため、そのままになっています。
歴史はこの仕組みが両方向に機能することを示しています。難易度はほぼ1年の間1にとどまり、2009年12月30日のブロック32,256での最初の再調整で約1.18に上昇しました。その後は120兆を超えて上昇しています。記録上最大の下落は2021年7月3日に起こり、中国によるマイニング業界の追放により、難易度は一度に27.94%低下し、およそ19.93兆から14.36兆になりました。
ビットコインを購入するときにこれが重要な理由
難易度があるからこそ、出金は数時間ではなく数分で確認されます。また、難易度が古いままであるために、確認が数分で済まないこともあります。
この仕組みは事後にしか修正しません。ハッシュレートの大きな割合が停止すると、ブロックは古い難易度のまま到着し続け、それぞれ10分より長くかかります。これは最大で2週間後になる次の再調整まで続きます。その数週間の間、確認は遅くなり、mempoolは埋まるよりも遅く排出され、同じブロック空間がより少ない頻度で競売にかけられるため手数料率は上昇します。2021年7月に取引所から出金した人はこれを直接感じました。その期間のブロックは平均して14分近くかかっていました。
反対の場合はより静かですが、より一般的です。新しい設備がオンラインになると、難易度が追いつくまでブロックは10分より速く到着するため、確認は一時的に予定よりも安く速くなります。
難易度が行わない2つのことについて、はっきり述べておく価値があります。難易度は半減期のスケジュールに影響しません。半減期は時間ではなくブロックを数えるからです。また、難易度は価格のシグナルではありません。難易度が上昇するのは、マイナーが数か月前に収益性のあった機器を購入したからです。これを予測として読むのは、バックミラーを見るようなものです。
2021年7月3日の再調整
2021年7月3日の再調整はこの仕組みを最も明確に示しています。ショックは甚大で、修正は自動だったからです。
中国の取り締まりにより、世界のマイニング設備の大きな部分が2021年半ばの数週間でオフラインになりました。機器はテキサス、カザフスタン、パラグアイ行きの輸送コンテナに入れられ、輸送中は何もハッシュ計算しませんでした。ネットワークは停止せず、誰にも助けを求めませんでした。ただブロックをよりゆっくり生成しただけです。27.94%の減少は、直前の期間が1ブロックあたり10分ではなく約13.9分を平均していたことを意味します。再調整の時点で難易度は14.36兆に下がり、10分のペースは数時間以内に戻りました。その夏の4回連続の下方調整により、数値は合わせておよそ45%下がりました。反対方向の調整により、誰かがそうすべきと決めたわけでもなく、その後の数か月で下落分はすべて消え去りました。
マイニング難易度vs難易度調整
マイニング難易度は数値であり、難易度調整はそれを変えるイベントです。難易度は2,016ブロックのエポック全体にわたって一定に保たれる値であるため、そのエポック内のすべてのブロックは他のどのブロックともまったく同じ難しさです。調整とはエポックの境界で行われる再計算であり、マイナーが注視するものです。機器あたりの収益が変わる瞬間だからです。火曜日に難易度が上がったと言うのは、その火曜日に調整が行われたと言うことの略式表現です。
マイニング難易度vsターゲットのしきい値
マイニング難易度は人間のための便宜であり、ソフトウェアが強制するのはターゲットです。ターゲットは、ブロックのハッシュが下回らなければならない実際の256ビットの上限であり、nBitsフィールドに圧縮されてすべてのブロックヘッダーに現れます。難易度はターゲットを割り算して導出されたもので、ブロック内のどこにも現れません。ある見出しが難易度が5%上昇したと述べるとき、その根底にある変化は、ターゲットが約5%小さくなり、世界中のすべてのマイナーが静かに1ブロックあたり約5%多くの試行を必要とするようになったことです。