699 / 736TIMEWARP

Timewarp Attack

ブロックの時刻で採掘難易度を攻撃する仕組み

Bitcoin はブロックに記録された時刻から採掘の速さを推定しますが、その時刻を書くのはマイナー自身です。Timewarp Attack は、時刻の規則と難易度計算の隙間を突きます。十分に強い集団なら、採掘が遅いように見せて次のブロックを掘りやすくできます。

Timewarp Attack は、ブロックヘッダーの時刻を協調して操作し、次の難易度計算をゆがめる攻撃です。ハッシュレートが相応に下がっていなくても難易度を下げ、ブロック生成を速める可能性があります。

Bitcoin は 2016 ブロックごとに難易度を再計算し、平均 10 分のブロック間隔を目指します。期間の最後の時刻から最初の時刻を引くため、測る間隔は 2015 個だけです。ある期間の最後と次の期間の最初の間隔は、この差に含まれません。この境界では、二つの計算が期間を連続して結び付けないまま時刻を戻せます。 [4] [3]

新しいブロックの時刻は、直前の 11 ブロックの時刻の中央値である Median Time Past(MTP)を超える必要があります。ただし、すぐ前のブロックより新しい必要はありません。攻撃者は大半の時刻を MTP より 1 秒だけ進め、期間の最後をほぼ実時刻にし、次で再び古い時刻に戻せます。操作するのは新しく採掘するブロックであり、確認済みのヘッダーを書き換えるわけではありません。 [1]

典型的な攻撃ではハッシュレートの過半数、または Selfish Mining などでブロック順序への追加の影響力を得た少数派を想定します。時刻の並びを継続して支配する必要があり、異常な時刻のブロックを一つ作るだけでは足りません。典型的な攻撃の準備には約一か月かかり、その痕跡はチェーン上で公開されます。 [1]

攻撃した二つ目の期間では、平均 20 分に一ブロックという見かけの間隔を作り、難易度をおよそ半分にできます。次の期間は速く採掘されますが、操作した時刻は再び難易度低下を要求します。一度の調整を四倍の範囲に制限しても、繰り返しは防げません。MTP による理論上の長期的な限界は約 6 ブロック毎秒に相当しますが、実用的なネットワーク処理能力を保証する数値ではありません。 [1] [3]

速いブロック生成は、将来のブロック補助金を短い期間に前倒しします。それだけで 2100 万 BTC の上限が増えるわけではありません。ノードはデータをより速く検証・転送する必要があります。処理装置の過負荷、不十分な回線、競合する分岐、頻繁な再編成により、確認の信頼性が下がる恐れがあります。 [1]

BIP 113 は、時刻で指定された絶対的な nLockTime の判定に前のブロックの MTP を使います。ブロック高で指定されたロックは引き続き高さに従います。攻撃中は MTP が実際の時計より大幅に遅く進むことがあります。時間条件付きの資金が予定より長く使えなくなり、複雑な手順では各段階の時間的な連携が崩れる可能性があります。 [5] [1]

提案は期間の最初のブロックの時刻を制限し、直前のブロックより 7200 秒、つまり二時間を超えて古くすることを認めません。最後のブロックの時刻も最初より古くできません。仕様の状態は Complete です。これは提案の完成を意味し、有効化を意味しません。mainnet で新しいコンセンサス規則を強制するには、別途有効化が必要です。 [2]

ヘッダー時刻、MTP、2016 ブロックごとの境界、実際の採掘速度、難易度、ハッシュレートを比較します。典型的な攻撃と Murch–Zawy 変種、testnet と mainnet の規則を区別してください。ソフトウェアが予防的に安全なブロックテンプレートを作っても、提案された対策に違反するすべてのブロックをネットワーク全体が拒否するとは限りません。 [3] [2]

理解を深めるには、この項目とあわせて次もお読みください Difficulty Adjustment, マイニング, Proof of Work, Consensus Cleanup, Timelock, Reorg. 次の項目からも参照されています Consensus Cleanup.

01攻撃にはハッシュレートの過半数が必要ですか。

典型的な攻撃では、過半数か、ブロック順序への十分な影響力を与える別の優位性を想定します。その優位性がない小規模なマイナーには時刻を十分に支配する力がありません。

02Median Time Past の対策だけで十分ですか。

いいえ。MTP は個々の時刻を制限しますが、期間境界の隙間は閉じません。BIP 54 は最初と最後のブロック時刻の関係に追加の制限を提案しています。

DOC · 001Bitcoin Optech — Time warp文書 DOC · 002BIP 54 — Consensus Cleanup仕様 DOC · 003Bitcoin Core — pow.cpp一次資料 DOC · 004Bitcoin Developer Guide — Block chain文書 DOC · 005BIP 113 — Median time-past as endpoint for lock-time calculations仕様
改訂日: 一次資料を優先 · 投資助言ではありません