# ビットコイン時間歪曲攻撃脆弱性解析2025年3月26日、一人のビットコイン開発者が、ビットコインプロトコルに長年存在する複数の脆弱性と欠点を修正することを目的とした新しい改善提案を提出しました。この「大共識清理」と呼ばれるソフトフォーク提案は、以前に議論された重複取引の問題を解決するだけでなく、より深刻な脆弱性である「時間歪曲攻撃」に対する解決策も提案しています。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-aa8abf74d491995c6a26218fdae94a29)## ビットコインブロックタイムスタンプ保護メカニズム時間の歪み攻撃について議論する前に、現在のビットコインネットワークにおける時間操作保護ルールを理解する必要があります:1. 中位過去時間(MPT)ルール:ブロックのタイムスタンプは、前の11ブロックの中央値の時間よりも遅くなければなりません。2. 未来のブロックタイムルール:ブロックのタイムスタンプは、ノードのピアの中央値の時間を2時間以上先行してはならない。また、ノードの時間とローカルシステムの時計の最大許容差は90分である。MPTルールはブロックのタイムスタンプが過度に遡るのを防ぎ、未来のブロックルールはタイムスタンプが過度に先行するのを制限します。注目すべきは、過去のタイムスタンプを防ぐために未来のブロックルールのようなメカニズムを設定することはできません。なぜなら、それは初期のブロックチェーンの同期プロセスに影響を与える可能性があるからです。タイムディストーション攻撃は、まさに偽造された古代のタイムスタンプの可能性を利用しています。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-84e76f095ac839f76d2ca1240f644337)## 難易度調整アルゴリズムの誤差ビットコインの難易度調整周期は2016個のブロックを含み、10分の目標ブロック生成時間で計算すると、約2週間に相当します。マイニング難易度調整を計算する際、プロトコルは関連する2016ブロックウィンドウの最初と最後の2つのブロックのタイムスタンプの差を計算します。このウィンドウには実際には2015個のブロック間隔(2016から1を引いたもの)が含まれます。したがって、理想的には使用すべき目標時間は60秒 × 10分 × 2015個の間隔 = 1,209,000秒です。しかし、ビットコインのプロトコルは計算に2016という数字を使用しています:60秒 × 10分 × 2016 = 1,209,600秒。これは典型的な「1つ足りない」エラーであり、おそらくブロック数とブロック間隔数の混乱によるものです。この誤差は、目標時間が実際に必要な時間よりも0.05%長くなることを引き起こします。言い換えれば、ビットコインの実際の目標ブロック生成間隔は10分ではなく、10分0.3秒です。この誤差は一見無視できるように思えますが、時間歪み攻撃の可能性を生み出します。## タイムワープアタックの原理タイムワープ攻撃は2011年頃に初めて発見され、難易度計算のこの誤差を利用します。理想的な状況では、マイニングが完全に中央集権化されていると仮定すると、マイナーはプロトコルが許可する範囲内で任意にタイムスタンプを設定できます。攻撃者は以下の戦略を採用します:1. 大多数のブロックについて、タイムスタンプを前のブロックよりも1秒だけ進め、MPTルールを遵守します。2. できるだけ遅く時間を進めるために、マイナーは連続して6つのブロックで同じタイムスタンプを維持し、7つ目のブロックで1秒を追加し、このように繰り返します。3. 各難易度調整サイクルの最後のブロックで、タイムスタンプを実世界の時間に設定します。4. 次の難易度調整ウィンドウの最初のブロックのタイムスタンプは過去に戻され、前のサイクルの倒数第二のブロックよりも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. 新しい制限ルールを設定し、新しい難易度サイクルの最初のブロックの時間が前のサイクルの最後のブロックの特定の時間帯(例えば10分または2時間)よりも早くないように要求します。最新の改善提案では、開発者は2時間の時間制限を採用する傾向があります。この制限は難易度調整サイクルの目標時間の約0.6%であり、難易度操作の可能性を効果的に低下させることができます。最終的にどの解決策が採用されるにせよ、この脆弱性を修正することは、ビットコインネットワークの安全性と安定性をさらに強化し、その長期的な発展のためにより強固な基盤を築くことになる。! [ビットコインセキュリティの脆弱性:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-ceb4c636ad7cdbe85d7dd25709ca2dd6)
ビットコイン時間歪曲攻撃脆弱性解析:プロトコルの弱点と潜在的な修正案
ビットコイン時間歪曲攻撃脆弱性解析
2025年3月26日、一人のビットコイン開発者が、ビットコインプロトコルに長年存在する複数の脆弱性と欠点を修正することを目的とした新しい改善提案を提出しました。この「大共識清理」と呼ばれるソフトフォーク提案は、以前に議論された重複取引の問題を解決するだけでなく、より深刻な脆弱性である「時間歪曲攻撃」に対する解決策も提案しています。
! ビットコインセキュリティ侵害:タイムワープ攻撃
ビットコインブロックタイムスタンプ保護メカニズム
時間の歪み攻撃について議論する前に、現在のビットコインネットワークにおける時間操作保護ルールを理解する必要があります:
中位過去時間(MPT)ルール:ブロックのタイムスタンプは、前の11ブロックの中央値の時間よりも遅くなければなりません。
未来のブロックタイムルール:ブロックのタイムスタンプは、ノードのピアの中央値の時間を2時間以上先行してはならない。また、ノードの時間とローカルシステムの時計の最大許容差は90分である。
MPTルールはブロックのタイムスタンプが過度に遡るのを防ぎ、未来のブロックルールはタイムスタンプが過度に先行するのを制限します。注目すべきは、過去のタイムスタンプを防ぐために未来のブロックルールのようなメカニズムを設定することはできません。なぜなら、それは初期のブロックチェーンの同期プロセスに影響を与える可能性があるからです。タイムディストーション攻撃は、まさに偽造された古代のタイムスタンプの可能性を利用しています。
! ビットコインセキュリティ侵害:タイムワープ攻撃
難易度調整アルゴリズムの誤差
ビットコインの難易度調整周期は2016個のブロックを含み、10分の目標ブロック生成時間で計算すると、約2週間に相当します。マイニング難易度調整を計算する際、プロトコルは関連する2016ブロックウィンドウの最初と最後の2つのブロックのタイムスタンプの差を計算します。このウィンドウには実際には2015個のブロック間隔(2016から1を引いたもの)が含まれます。したがって、理想的には使用すべき目標時間は60秒 × 10分 × 2015個の間隔 = 1,209,000秒です。
しかし、ビットコインのプロトコルは計算に2016という数字を使用しています:60秒 × 10分 × 2016 = 1,209,600秒。これは典型的な「1つ足りない」エラーであり、おそらくブロック数とブロック間隔数の混乱によるものです。
この誤差は、目標時間が実際に必要な時間よりも0.05%長くなることを引き起こします。言い換えれば、ビットコインの実際の目標ブロック生成間隔は10分ではなく、10分0.3秒です。この誤差は一見無視できるように思えますが、時間歪み攻撃の可能性を生み出します。
タイムワープアタックの原理
タイムワープ攻撃は2011年頃に初めて発見され、難易度計算のこの誤差を利用します。理想的な状況では、マイニングが完全に中央集権化されていると仮定すると、マイナーはプロトコルが許可する範囲内で任意にタイムスタンプを設定できます。攻撃者は以下の戦略を採用します:
大多数のブロックについて、タイムスタンプを前のブロックよりも1秒だけ進め、MPTルールを遵守します。
できるだけ遅く時間を進めるために、マイナーは連続して6つのブロックで同じタイムスタンプを維持し、7つ目のブロックで1秒を追加し、このように繰り返します。
各難易度調整サイクルの最後のブロックで、タイムスタンプを実世界の時間に設定します。
次の難易度調整ウィンドウの最初のブロックのタイムスタンプは過去に戻され、前のサイクルの倒数第二のブロックよりも1秒早く設定されています。
この攻撃モードは、ブロックチェーンの時間が徐々に実際の時間に遅れ、同時に難易度が増加することを引き起こします。しかし、各難易度調整サイクルの最後のブロックが実際のタイムスタンプを使用するため、難易度計算は大きな影響を受けます。攻撃開始後の2回目の調整サイクルが終了する時、難易度は大幅に引き下げられます。これにより、攻撃者は非常に迅速にブロックを作成し、大量のビットコインを鋳造し、そこから利益を得る可能性があります。
! ビットコインセキュリティ侵害:タイムワープ攻撃
攻撃の実現可能性と課題
理論的にはこの攻撃は壊滅的であるが、実施するには多くの課題がある:
! ビットコインセキュリティ侵害:タイムワープ攻撃
考えられる解決策
この脆弱性を修正するのは比較的簡単ですが、ソフトフォークプロトコルの変更が必要になるかもしれません。考えられる解決策には、次のようなものがあります:
最新の改善提案では、開発者は2時間の時間制限を採用する傾向があります。この制限は難易度調整サイクルの目標時間の約0.6%であり、難易度操作の可能性を効果的に低下させることができます。
最終的にどの解決策が採用されるにせよ、この脆弱性を修正することは、ビットコインネットワークの安全性と安定性をさらに強化し、その長期的な発展のためにより強固な基盤を築くことになる。
! ビットコインセキュリティの脆弱性:タイムワープ攻撃