# ビットコイン時間歪曲攻撃脆弱性分析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)## サトシ・ナカモトの「1人足りない」ミスビットコインの難易度調整周期は2016個のブロックを含み、10分の出塊目標で計算すると約2週間になります。難易度調整を計算する際、プロトコルは関連する2016ブロックのウィンドウの先頭と末尾の2つのブロックのタイムスタンプの差を比較します。このウィンドウは実際には2015個のブロック間隔(つまり2016から1を引いたもの)を含んでいます。したがって、理論的には60秒 * 10分 * 2015個の間隔 = 1,209,000秒を目標時間として使用すべきです。しかし、ビットコインプロトコルは2016という数字を使用しているため、60秒 * 10分 * 2016 = 1,209,600秒となります。これは典型的な差一のエラーであり、サトシ・ナカモトがブロック数とブロック間隔数を混同したことに起因している可能性があります。このエラーは、目標時間が本来より0.05%長くなり、実際にはビットコインの目標ブロック生成時間がわずかに10分0.3秒に延長されることになります。この誤差は微々たるものに見えますが、別のより深刻な問題に関連しています。## タイムワープ攻撃の原理時間歪曲攻撃は2011年に初めて発見され、サトシ・ナカモトの難易度計算のエラーを利用しました。攻撃者はブロックのタイムスタンプを操作することで、人工的にマイニングの難易度を下げることができます。攻撃手順は次の通りです:1. 大多数ブロックについて、タイムスタンプは前のブロックよりも1秒だけ進めるように設定します。2. 6つのブロックごとに同じタイムスタンプを維持し、その後1秒を追加してMPTルールを遵守します。3. 各難易度調整サイクルの最後のブロックで、タイムスタンプを現実世界の時間に設定します。4. 次のサイクルの最初のブロックのタイムスタンプが再び過去に戻り、前のサイクルの倒数第二のブロックより1秒早い。この操作は、ブロックチェーンの時間が実際の時間に対してますます遅れる原因となり、難易度が不断に増加します。しかし、第二の調整サイクルからは、難易度が下がり始めます。攻撃者はこのメカニズムを利用して、大量のブロックを迅速に作成し、過剰なビットコイン報酬を得ることができます。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-21f436beb58cee5eac9817dfd8cf127a)## 攻撃の実現可能性と制限理論的にはこの攻撃は大きな影響を与えるが、実施にはいくつかの課題がある:1. 大部分のネットワークの計算能力を制御する必要があります。2. 正直なマイナーの存在は攻撃の難易度を増加させる。3. MTPルールと誠実なタイムスタンプは、悪意のあるタイムスタンプの遡及の程度を制限します。4. 正直なマイナーが任意の難易度調整ウィンドウの最初のブロックを生成した場合、そのサイクルの攻撃は無効になります。5. 攻撃プロセスはすべての人に見えるため、緊急ソフトフォーク修正を引き起こす可能性があります。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-3768d663a24114915f45612fb4754fef)## 考えられる解決策この脆弱性を修正するためのいくつかの可能な方法があります:1. 難易度調整アルゴリズムを変更し、異なる2016ウィンドウ間の時間間隔を計算し、1つの誤りを修正します。しかし、これにはハードフォークが必要になる可能性があります。2. MTPルールをキャンセルし、各ブロック内で時間が前に進む必要があります。しかし、これにより時間が遠い未来に固定される可能性や、システムクロックの差異による問題が発生する可能性があります。3. より簡単な解決策は、新しい難易度期間の最初のブロックの時間が前の期間の最後のブロックの特定の分数よりも早くないことを要求することです。現在議論されている時間範囲は10分から2時間までさまざまです。最新の大共識クリア提案では、開発者は2時間の制限を採用することを提案しています。この時間帯は、難易度調整周期の目標時間の約0.6%に相当し、難易度の下方操作の余地を効果的に制限することができます。最終的にどの解決策が採用されるにせよ、この脆弱性を修正することは、ビットコインネットワークの安全性と安定性をさらに高めることになります。! [ビットコインセキュリティの脆弱性:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-ceb4c636ad7cdbe85d7dd25709ca2dd6)
ビットコインタイムワープ攻撃の脆弱性分析:原則、影響、および修正
ビットコイン時間歪曲攻撃脆弱性分析
2025年3月26日、ビットコインの開発者は「大共識清理」と呼ばれるソフトフォーク提案を提出しました。この提案は、ビットコインプロトコルに長年存在しているいくつかの脆弱性や弱点を修正することを目的としています。その中には、以前議論した重複取引の問題や、この記事で重点的に探討する「時間の歪み攻撃」脆弱性が含まれています。
! ビットコインセキュリティ侵害:タイムワープ攻撃
ビットコインブロックタイムスタンプ保護メカニズム
時間歪曲攻撃を探る前に、現在の時間操作保護ルールを理解する必要があります:
中位過去時間(MPT)ルール:ブロックのタイムスタンプは最近の11ブロックの中央値の時間よりも遅くなければなりません。
未来のブロック時間ルール:ブロックのタイムスタンプはノードのピアの中央値から2時間以上を超えてはならない。ノードの時間とローカルシステムクロックの最大許容差は90分である。
MPTルールはブロックのタイムスタンプが過度に遡るのを防ぎ、将来のブロックルールはタイムスタンプが過度に前倒しされるのを制限します。注意すべきは、過去のタイムスタンプを防ぐために将来のブロックルールのようなメカニズムを実装することはできないということです。なぜなら、それは初期のブロックチェーンの同期に影響を与える可能性があるからです。タイムディストーション攻撃は、まさに古代のタイムスタンプを偽造する可能性を利用しています。
! ビットコインセキュリティ侵害:タイムワープ攻撃
サトシ・ナカモトの「1人足りない」ミス
ビットコインの難易度調整周期は2016個のブロックを含み、10分の出塊目標で計算すると約2週間になります。難易度調整を計算する際、プロトコルは関連する2016ブロックのウィンドウの先頭と末尾の2つのブロックのタイムスタンプの差を比較します。このウィンドウは実際には2015個のブロック間隔(つまり2016から1を引いたもの)を含んでいます。したがって、理論的には60秒 * 10分 * 2015個の間隔 = 1,209,000秒を目標時間として使用すべきです。しかし、ビットコインプロトコルは2016という数字を使用しているため、60秒 * 10分 * 2016 = 1,209,600秒となります。これは典型的な差一のエラーであり、サトシ・ナカモトがブロック数とブロック間隔数を混同したことに起因している可能性があります。
このエラーは、目標時間が本来より0.05%長くなり、実際にはビットコインの目標ブロック生成時間がわずかに10分0.3秒に延長されることになります。この誤差は微々たるものに見えますが、別のより深刻な問題に関連しています。
タイムワープ攻撃の原理
時間歪曲攻撃は2011年に初めて発見され、サトシ・ナカモトの難易度計算のエラーを利用しました。攻撃者はブロックのタイムスタンプを操作することで、人工的にマイニングの難易度を下げることができます。
攻撃手順は次の通りです:
この操作は、ブロックチェーンの時間が実際の時間に対してますます遅れる原因となり、難易度が不断に増加します。しかし、第二の調整サイクルからは、難易度が下がり始めます。攻撃者はこのメカニズムを利用して、大量のブロックを迅速に作成し、過剰なビットコイン報酬を得ることができます。
! ビットコインセキュリティ侵害:タイムワープ攻撃
攻撃の実現可能性と制限
理論的にはこの攻撃は大きな影響を与えるが、実施にはいくつかの課題がある:
! ビットコインセキュリティ侵害:タイムワープ攻撃
考えられる解決策
この脆弱性を修正するためのいくつかの可能な方法があります:
難易度調整アルゴリズムを変更し、異なる2016ウィンドウ間の時間間隔を計算し、1つの誤りを修正します。しかし、これにはハードフォークが必要になる可能性があります。
MTPルールをキャンセルし、各ブロック内で時間が前に進む必要があります。しかし、これにより時間が遠い未来に固定される可能性や、システムクロックの差異による問題が発生する可能性があります。
より簡単な解決策は、新しい難易度期間の最初のブロックの時間が前の期間の最後のブロックの特定の分数よりも早くないことを要求することです。現在議論されている時間範囲は10分から2時間までさまざまです。
最新の大共識クリア提案では、開発者は2時間の制限を採用することを提案しています。この時間帯は、難易度調整周期の目標時間の約0.6%に相当し、難易度の下方操作の余地を効果的に制限することができます。
最終的にどの解決策が採用されるにせよ、この脆弱性を修正することは、ビットコインネットワークの安全性と安定性をさらに高めることになります。
! ビットコインセキュリティの脆弱性:タイムワープ攻撃