# ビットコインプロトコルの時間歪み攻撃の脆弱性ビットコイン開発者Antoine Poinsotは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つのブロックのタイムスタンプ差を計算します。この2016ブロックのウィンドウには実際に2015個のブロック間隔(つまり2016から1を引いた数)が含まれています。したがって、理論的に使用される目標時間は60秒 × 10分 × 2015個の間隔であり、合計1,209,000秒になります。しかし、ビットコインプロトコルは計算時に2016という数字を使用しています。60秒 × 10分 × 2016 = 1,209,600秒です。これはわずかな誤差であり、サトシ・ナカモトがブロック間隔の概念について混乱した可能性があります。このエラーは、目標時間があるべき時間よりも0.05%長くなってしまうことを引き起こします。実際、ビットコインの目標間隔時間は10分ではなく、10分0.3秒です。この微小な偏差は重大な影響を及ぼすことはありません。実際、ビットコインの誕生以来、平均ブロック間隔は約9分36秒で推移しており、10分よりも明らかに少なくなっています。これは主に2009年以降、ネットワークの平均ハッシュレートが着実に増加しているためです。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-21f436beb58cee5eac9817dfd8cf127a)## タイムワープアタックの仕組み時間の歪み攻撃は2011年に初めて発見されました。これは中本聡が難易度計算において犯したこの小さな誤りを利用しています。仮にマイニングが完全に中央集権化されているとしたら、攻撃者は以下の方法でブロックのタイムスタンプを操作することができます:1. 大部分のブロックについて、タイムスタンプを前のブロックよりも1秒だけ進めるように設定します。2. MPTルールを遵守するために、連続する6つのブロックで同じタイムスタンプを保持し、その後次のブロックで1秒時間を増加させます。3. 各難易度調整サイクルの最後のブロックで、タイムスタンプを現実世界の時間に設定します。4. 次の難易度調整ウィンドウの最初のブロックは、再びタイムスタンプを過去に戻し、前のサイクルの倒数第二のブロックより1秒早くします。この攻撃手法は、ブロックチェーンの時間が実際の時間に対してますます遅れ、難易度が不断に増加することを引き起こし、マイニングがますます困難になります。しかし、2回目の調整サイクルから、難易度は下方調整を始めます。攻撃者はその後、非常に速い速度でブロックを作成し、大量のビットコインを生成することができるため、潜在的な利益を得ることができます。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-3768d663a24114915f45612fb4754fef)## 攻撃の実現可能性と課題理論的にはこの攻撃は破壊的ですが、実際の実行には多くの課題があります。1. 大部分のネットワークの計算能力を制御する必要があるかもしれません。2. 正直なマイナーの存在は攻撃の難易度を増加させます。3. MTPルールと誠実なタイムスタンプは、悪意のあるタイムスタンプの遡及の程度を制限する可能性があります。4. 攻撃プロセスは全ての人に見えるため、緊急ソフトフォーク修正を引き起こす可能性があります。## 考えられる解決策この脆弱性を修正するのは比較的簡単ですが、ソフトフォークプロトコルの変更が必要になる可能性があります。単純な解決策は、新しい難易度サイクルの最初のブロックのタイムスタンプが前のサイクルの最後のブロックの特定の分数よりも早くないことを要求することです。ポワンソの提案では、この時間制限は2時間に設定されており、難易度調整サイクルの目標時間の約0.6%に相当し、難易度が操作される幅を効果的に制限することができます。この2時間制限の利点には、- 意図しない無効なブロックのリスクを最小化する- 未来のブロックタイムスタンプルールに一致させる- 相対的に保守的な変化は、通常の場合、MTPルールよりも柔軟である可能性があります。しかし、この方法では攻撃者が毎サイクルごとに難易度を約0.6%下方に操作することが依然として可能ですが、これは一回限りの変化であり、累積することはできません。総じて、時間歪曲攻撃は理論的には脅威が存在しますが、実際の実行は難易度が高いです。適切なプロトコルの更新を通じて、私たちはビットコインネットワークの安全性と安定性をさらに強化できます。! [ビットコインセキュリティの脆弱性:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-ceb4c636ad7cdbe85d7dd25709ca2dd6)
ビットコインプロトコルには時間歪み攻撃の脆弱性が存在し、新しい提案がソフトフォークによって修正されることを目指しています。
ビットコインプロトコルの時間歪み攻撃の脆弱性
ビットコイン開発者Antoine Poinsotは2025年3月26日に新しい改善提案を提出し、ソフトフォークアップグレードを通じてビットコインプロトコルに長年存在しているいくつかの脆弱性や弱点を修正することを目的としています。その中の一つの深刻な脆弱性は「時間歪み攻撃」と呼ばれ、この記事ではこれについて詳しく探討します。
! ビットコインセキュリティ侵害:タイムワープ攻撃
ビットコインブロックタイムスタンプ保護メカニズム
時間の歪み攻撃について議論する前に、まず現在のビットコインネットワークにおける時間操作保護ルールを振り返りましょう:
中位過去時間(MPT)ルール:ブロックのタイムスタンプは最近の11ブロックの中央値の時間よりも遅くなければなりません。
将来のブロック時間ルール:ブロックのタイムスタンプは、ノードのピア間の中央値の時間を2時間以上超えてはならない。また、ノードの時間とローカルシステムの時計との間に許容される最大の差は90分であり、これは安全保障措置でもある。
MPTルールはブロックのタイムスタンプが過度に遡及しないことを保証し、未来ブロックルールはタイムスタンプが過度に先行することを防ぎます。注意すべきは、過去のタイムスタンプを使用するブロックを防ぐために未来ブロックルールのような措置を実施することはできないということです。これは初期のブロックチェーンの同期プロセスに影響を与える可能性があります。タイムディストーション攻撃は、まさに古代のタイムスタンプを偽造する可能性を利用しています。
! ビットコインセキュリティ侵害:タイムワープ攻撃
中本聪の小さな間違い
ビットコインの難易度調整周期は2016個のブロックで構成され、10分の目標ブロック生成時間を基に計算すると、約2週間になります。マイニングの難易度調整を計算するために、プロトコルは関連する2016ブロックウィンドウ内の最初と最後の2つのブロックのタイムスタンプ差を計算します。この2016ブロックのウィンドウには実際に2015個のブロック間隔(つまり2016から1を引いた数)が含まれています。したがって、理論的に使用される目標時間は60秒 × 10分 × 2015個の間隔であり、合計1,209,000秒になります。
しかし、ビットコインプロトコルは計算時に2016という数字を使用しています。60秒 × 10分 × 2016 = 1,209,600秒です。これはわずかな誤差であり、サトシ・ナカモトがブロック間隔の概念について混乱した可能性があります。
このエラーは、目標時間があるべき時間よりも0.05%長くなってしまうことを引き起こします。実際、ビットコインの目標間隔時間は10分ではなく、10分0.3秒です。この微小な偏差は重大な影響を及ぼすことはありません。実際、ビットコインの誕生以来、平均ブロック間隔は約9分36秒で推移しており、10分よりも明らかに少なくなっています。これは主に2009年以降、ネットワークの平均ハッシュレートが着実に増加しているためです。
! ビットコインセキュリティ侵害:タイムワープ攻撃
タイムワープアタックの仕組み
時間の歪み攻撃は2011年に初めて発見されました。これは中本聡が難易度計算において犯したこの小さな誤りを利用しています。仮にマイニングが完全に中央集権化されているとしたら、攻撃者は以下の方法でブロックのタイムスタンプを操作することができます:
この攻撃手法は、ブロックチェーンの時間が実際の時間に対してますます遅れ、難易度が不断に増加することを引き起こし、マイニングがますます困難になります。しかし、2回目の調整サイクルから、難易度は下方調整を始めます。攻撃者はその後、非常に速い速度でブロックを作成し、大量のビットコインを生成することができるため、潜在的な利益を得ることができます。
! ビットコインセキュリティ侵害:タイムワープ攻撃
攻撃の実現可能性と課題
理論的にはこの攻撃は破壊的ですが、実際の実行には多くの課題があります。
考えられる解決策
この脆弱性を修正するのは比較的簡単ですが、ソフトフォークプロトコルの変更が必要になる可能性があります。単純な解決策は、新しい難易度サイクルの最初のブロックのタイムスタンプが前のサイクルの最後のブロックの特定の分数よりも早くないことを要求することです。ポワンソの提案では、この時間制限は2時間に設定されており、難易度調整サイクルの目標時間の約0.6%に相当し、難易度が操作される幅を効果的に制限することができます。
この2時間制限の利点には、
しかし、この方法では攻撃者が毎サイクルごとに難易度を約0.6%下方に操作することが依然として可能ですが、これは一回限りの変化であり、累積することはできません。
総じて、時間歪曲攻撃は理論的には脅威が存在しますが、実際の実行は難易度が高いです。適切なプロトコルの更新を通じて、私たちはビットコインネットワークの安全性と安定性をさらに強化できます。
! ビットコインセキュリティの脆弱性:タイムワープ攻撃