# ビットコインプロトコルの時間歪み脆弱性の考察2025年3月、ビットコイン開発者は「大共識清理」というソフトフォーク提案を提出し、ビットコインプロトコルに長期的に存在するいくつかの脆弱性と弱点を修正することを目的としています。その中でも比較的深刻な脆弱性は「時間歪み攻撃」と呼ばれており、この記事ではそれについて詳しく探討します。## ビットコインのタイムスタンプ保護メカニズム時間の歪み攻撃について議論する前に、現在のビットコインネットワークにおける時間操作保護ルールを振り返りましょう:1. 中位過去時間(MPT)ルール:ブロックのタイムスタンプは、前の11ブロックの中位時間よりも遅くなければなりません。2. 未来ブロック時間ルール:ブロックのタイムスタンプはネットワークノードの中央値の時間を2時間以上先行してはならず、またノードの時間とローカルシステムクロックの最大許容差は90分である。これらのルールの目的は、ブロックのタイムスタンプが過度に操作されるのを防ぐことであり、過去または未来のいずれかに向けてです。しかし、タイムディストーション攻撃は主に過去のタイムスタンプを偽造する脆弱性を利用します。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-aa8abf74d491995c6a26218fdae94a29)## ビットコイン創始者の"差一"エラービットコインの難易度調整周期は2016個のブロックを含み、理論的には約2週間の時間です。マイニング難易度調整を計算する際、プロトコルは関連する2016ブロックウィンドウ内の最初と最後のブロックの間のタイムスタンプの差を計算します。しかし、このウィンドウは実際には2015個のブロック間隔しか含まれていません。正しい目標時間は60秒 * 10分 * 2015の間隔 = 1,209,000秒であるべきです。しかし、ビットコインプロトコルは2016という数字を使用しており、計算結果は1,209,600秒になります。この0.05%の誤差により、ビットコインの実際の目標ブロック間隔はわずかに10分を超え、10分零0.3秒となります。この誤差は微々たるものに見えるが、別のより深刻な問題に関連している。難易度の計算は2016ブロックのウィンドウ内の最初と最後のブロックのみに基づいており、前のウィンドウの最後のブロックと現在のウィンドウの最後のブロックの間の差異には基づいていない。この計算方法は、時間の歪み攻撃の条件を生み出す。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-84e76f095ac839f76d2ca1240f644337)## タイムワープアタックの仕組み時間歪曲攻撃は2011年に初めて発見されました。この攻撃では、採掘が完全に中央集権化されていると仮定し、攻撃者がブロックのタイムスタンプを操作することができます。攻撃者はほとんどのブロックのタイムスタンプを前のブロックよりもわずかに1秒早く設定し、同時にMTPルールを遵守します。できるだけ時間を遅く進めるために、攻撃者は連続して六つのブロックで同じタイムスタンプを維持し、その後、七つ目のブロックで1秒増やし、このサイクルを繰り返します。この操作は、ブロックチェーンの時間が実際の時間に対してますます遅れる原因となります。しかし、攻撃の鍵は各難易度調整サイクルの最後のブロックにあります。攻撃者はこのブロックのタイムスタンプを実世界の時間に設定し、次のサイクルの最初のブロックは再び過去の時間に設定されます。この方法により、最初のサイクル後の難易度は影響を受けません。しかし、2回目の調整サイクルからは、難易度が下降し始めます。これにより、攻撃者は非常に速い速度でブロックを作成し、大量のビットコインを生成して利益を得ることが可能になります。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-21f436beb58cee5eac9817dfd8cf127a)## 攻撃の実現可能性と課題理論的にはこの攻撃は破壊的ですが、実際の実施には多くの課題があります:1. 大部分のネットワークの計算能力を制御する必要があります。2. 正直なマイナーの存在は攻撃の難易度を上げます。3. MTPルールと誠実なタイムスタンプは、悪意のあるタイムスタンプの回溯の程度を制限します。4. 正直なマイナーが任意の難易度調整ウィンドウの最初のブロックを生成した場合、その周期の攻撃は無効となります。5. 攻撃プロセスは公開されており、緊急ソフトフォーク修正を引き起こす可能性があります。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-3768d663a24114915f45612fb4754fef)## ソリューションこの脆弱性を修正する方法はいくつかあります:1. 難易度調整アルゴリズムを変更し、異なる2016ブロックウィンドウ間の時間スパンを計算するとともに、"差一"エラーを修正します。2. MTPルールを解除し、各ブロック内の時間が常に前進することを要求します。3. 新しい制限ルールを導入し、新しい難易度サイクルの最初のブロックの時間が前のサイクルの最後のブロックの特定の時間(例えば2時間)よりも早くないことを要求します。現在、大規模なコンセンサスクリアリング提案では、3番目の方法が採用され、時間制限が2時間に設定されています。この方案は、時間の歪み攻撃を効果的に緩和し、意図しない無効なブロックのリスクを最小限に抑えることができます。これらの改善を実施することで、ビットコインネットワークは時間歪み攻撃に対してより良く耐えることができ、さらにその安全性と安定性を強化することができます。! [ビットコインセキュリティの脆弱性:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-ceb4c636ad7cdbe85d7dd25709ca2dd6)
ビットコイン時間歪曲脆弱性の解析:大コンセンサスクリーニング提案がプロトコルの弱点をどのように修正するか
ビットコインプロトコルの時間歪み脆弱性の考察
2025年3月、ビットコイン開発者は「大共識清理」というソフトフォーク提案を提出し、ビットコインプロトコルに長期的に存在するいくつかの脆弱性と弱点を修正することを目的としています。その中でも比較的深刻な脆弱性は「時間歪み攻撃」と呼ばれており、この記事ではそれについて詳しく探討します。
ビットコインのタイムスタンプ保護メカニズム
時間の歪み攻撃について議論する前に、現在のビットコインネットワークにおける時間操作保護ルールを振り返りましょう:
中位過去時間(MPT)ルール:ブロックのタイムスタンプは、前の11ブロックの中位時間よりも遅くなければなりません。
未来ブロック時間ルール:ブロックのタイムスタンプはネットワークノードの中央値の時間を2時間以上先行してはならず、またノードの時間とローカルシステムクロックの最大許容差は90分である。
これらのルールの目的は、ブロックのタイムスタンプが過度に操作されるのを防ぐことであり、過去または未来のいずれかに向けてです。しかし、タイムディストーション攻撃は主に過去のタイムスタンプを偽造する脆弱性を利用します。
! ビットコインセキュリティ侵害:タイムワープ攻撃
ビットコイン創始者の"差一"エラー
ビットコインの難易度調整周期は2016個のブロックを含み、理論的には約2週間の時間です。マイニング難易度調整を計算する際、プロトコルは関連する2016ブロックウィンドウ内の最初と最後のブロックの間のタイムスタンプの差を計算します。しかし、このウィンドウは実際には2015個のブロック間隔しか含まれていません。
正しい目標時間は60秒 * 10分 * 2015の間隔 = 1,209,000秒であるべきです。しかし、ビットコインプロトコルは2016という数字を使用しており、計算結果は1,209,600秒になります。この0.05%の誤差により、ビットコインの実際の目標ブロック間隔はわずかに10分を超え、10分零0.3秒となります。
この誤差は微々たるものに見えるが、別のより深刻な問題に関連している。難易度の計算は2016ブロックのウィンドウ内の最初と最後のブロックのみに基づいており、前のウィンドウの最後のブロックと現在のウィンドウの最後のブロックの間の差異には基づいていない。この計算方法は、時間の歪み攻撃の条件を生み出す。
! ビットコインセキュリティ侵害:タイムワープ攻撃
タイムワープアタックの仕組み
時間歪曲攻撃は2011年に初めて発見されました。この攻撃では、採掘が完全に中央集権化されていると仮定し、攻撃者がブロックのタイムスタンプを操作することができます。攻撃者はほとんどのブロックのタイムスタンプを前のブロックよりもわずかに1秒早く設定し、同時にMTPルールを遵守します。できるだけ時間を遅く進めるために、攻撃者は連続して六つのブロックで同じタイムスタンプを維持し、その後、七つ目のブロックで1秒増やし、このサイクルを繰り返します。
この操作は、ブロックチェーンの時間が実際の時間に対してますます遅れる原因となります。しかし、攻撃の鍵は各難易度調整サイクルの最後のブロックにあります。攻撃者はこのブロックのタイムスタンプを実世界の時間に設定し、次のサイクルの最初のブロックは再び過去の時間に設定されます。
この方法により、最初のサイクル後の難易度は影響を受けません。しかし、2回目の調整サイクルからは、難易度が下降し始めます。これにより、攻撃者は非常に速い速度でブロックを作成し、大量のビットコインを生成して利益を得ることが可能になります。
! ビットコインセキュリティ侵害:タイムワープ攻撃
攻撃の実現可能性と課題
理論的にはこの攻撃は破壊的ですが、実際の実施には多くの課題があります:
! ビットコインセキュリティ侵害:タイムワープ攻撃
ソリューション
この脆弱性を修正する方法はいくつかあります:
現在、大規模なコンセンサスクリアリング提案では、3番目の方法が採用され、時間制限が2時間に設定されています。この方案は、時間の歪み攻撃を効果的に緩和し、意図しない無効なブロックのリスクを最小限に抑えることができます。
これらの改善を実施することで、ビットコインネットワークは時間歪み攻撃に対してより良く耐えることができ、さらにその安全性と安定性を強化することができます。
! ビットコインセキュリティの脆弱性:タイムワープ攻撃