# ビットコインプロトコルの時間歪み攻撃の脆弱性とその修正案2025年3月26日、ビットコイン開発者は「大共識清理」と呼ばれるソフトフォーク提案を提出し、ビットコインプロトコルに長期間存在していた複数の脆弱性や弱点を修正することを目的としています。その中で重要な脆弱性の一つは「時間歪み攻撃」と呼ばれ、本稿ではこの問題に重点を置いて議論します。## ビットコインブロックタイムスタンプ保護メカニズム時間の歪み攻撃について議論する前に、現在のビットコインプロトコルにおける時間操作保護ルールを理解する必要があります。1. 中位過去時間(MPT)ルール:ブロックのタイムスタンプは前11のブロックの中央値の時間よりも遅くなければなりません。2. 未来のブロック時間ルール:ブロックのタイムスタンプは、ノードのピアの中央値の時間よりも2時間以上先行してはならない。また、ノードが提供する時間とローカルシステムの時計との間には最大90分の差が許可される。これらのルールの目的は、ブロックのタイムスタンプが実際の時間から大きく逸脱するのを防ぐことですが、時間歪曲攻撃の発生を完全に阻止することはできません。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-aa8abf74d491995c6a26218fdae94a29)## 難易度調整アルゴリズムの脆弱性ビットコインの難易度調整周期は2016個のブロックを含み、理論的には約2週間の時間です。マイニングの難易度調整を計算する際、プロトコルは隣接する2つの2016ブロックウィンドウの先頭と末尾のブロックのタイムスタンプ差を計算します。しかし、わずかな計算ミスにより、実際に使用される目標時間は理想的な状況よりも600秒多くなっています。これにより、ビットコインの実際の目標ブロック生成時間は10分0.3秒となり、期待される10分ではなくなります。この0.3秒の誤差は微々たるものに見えますが、別のより深刻な問題に関連しています。難易度計算は、2016ブロックウィンドウ内の最初と最後のブロックに基づいており、隣接する2つのウィンドウの最後のブロック間の差異ではありません。この計算方法は、時間歪曲攻撃の可能性を生み出します。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-84e76f095ac839f76d2ca1240f644337)## タイムワープアタックの仕組み時間歪曲攻撃は、難易度計算のこの脆弱性を利用します。攻撃者はブロックのタイムスタンプを操作することで、ブロックチェーンが実際の時間の経過速度に比べて、時間的に前進する速度を大幅に遅らせます。具体的には:1. 大多数ブロックのタイムスタンプは前のブロックよりも1秒増加するだけです。2. 6つのブロックごとにタイムスタンプを1秒増加させ、MPTプロトコルを遵守します。3. 各難易度調整周期の最後のブロックでは、現実の時間をタイムスタンプとして使用します。4. 新しい難易度調整周期の最初のブロックのタイムスタンプは、前の周期の倒数第二のブロックより1秒早く設定されました。この操作により、ブロックチェーンの時間が実際の時間に対して徐々に遅れ、難易度が常に低下し、攻撃者が非常に速い速度でブロックを生成し、大量のビットコインを取得できるようになります。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-21f436beb58cee5eac9817dfd8cf127a)## 攻撃の実現可能性と制限理論的にはタイムワープ攻撃が深刻な結果をもたらす可能性がありますが、実施には多くの課題があります。1. 大部分のハッシュレートを制御する必要があります。2. 正直なマイナーの存在は攻撃の難易度を増加させます。3. MTPルールと誠実なマイナーのタイムスタンプは、悪意のあるタイムスタンプの遡及の程度を制限します。4. 攻撃プロセスは公開観察可能であり、緊急修正を引き起こす可能性があります。! [ビットコインセキュリティ侵害:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-3768d663a24114915f45612fb4754fef)## ソリューション時間歪曲攻撃の脆弱性を修正するために、以下の解決策が提案されました:1. 難易度調整アルゴリズムを修正し、隣接する2つの2016ブロックウィンドウの最後のブロック間の時間差を計算に使用します。2. MTPルールをキャンセルし、各ブロックのタイムスタンプが前のブロックよりも大きくなることを要求します。3. 新しい難易度サイクルの最初のブロックの最小タイムスタンプ制限を設定します。その中で、第三の提案は最も簡単で効果的であると考えられています。現在の提案では、この時間制限を2時間に設定することが推奨されており、つまり新しい難易度サイクルの最初のブロックのタイムスタンプは、前のサイクルの最後のブロックから2時間以上早くなることはできません。この制限は、時間の歪み攻撃を効果的に防ぐことができ、同時に通常のマイニングへの影響は小さいです。これらの修正措置を実施することにより、ビットコインネットワークは時間歪み攻撃に対してより良く抵抗できるようになり、全体的な安全性と安定性が向上します。! [ビットコインセキュリティの脆弱性:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-ceb4c636ad7cdbe85d7dd25709ca2dd6)
ビットコイン時間歪み攻撃脆弱性解析及び大コンセンサスクリーニング提案修復方案
ビットコインプロトコルの時間歪み攻撃の脆弱性とその修正案
2025年3月26日、ビットコイン開発者は「大共識清理」と呼ばれるソフトフォーク提案を提出し、ビットコインプロトコルに長期間存在していた複数の脆弱性や弱点を修正することを目的としています。その中で重要な脆弱性の一つは「時間歪み攻撃」と呼ばれ、本稿ではこの問題に重点を置いて議論します。
ビットコインブロックタイムスタンプ保護メカニズム
時間の歪み攻撃について議論する前に、現在のビットコインプロトコルにおける時間操作保護ルールを理解する必要があります。
中位過去時間(MPT)ルール:ブロックのタイムスタンプは前11のブロックの中央値の時間よりも遅くなければなりません。
未来のブロック時間ルール:ブロックのタイムスタンプは、ノードのピアの中央値の時間よりも2時間以上先行してはならない。また、ノードが提供する時間とローカルシステムの時計との間には最大90分の差が許可される。
これらのルールの目的は、ブロックのタイムスタンプが実際の時間から大きく逸脱するのを防ぐことですが、時間歪曲攻撃の発生を完全に阻止することはできません。
! ビットコインセキュリティ侵害:タイムワープ攻撃
難易度調整アルゴリズムの脆弱性
ビットコインの難易度調整周期は2016個のブロックを含み、理論的には約2週間の時間です。マイニングの難易度調整を計算する際、プロトコルは隣接する2つの2016ブロックウィンドウの先頭と末尾のブロックのタイムスタンプ差を計算します。しかし、わずかな計算ミスにより、実際に使用される目標時間は理想的な状況よりも600秒多くなっています。これにより、ビットコインの実際の目標ブロック生成時間は10分0.3秒となり、期待される10分ではなくなります。
この0.3秒の誤差は微々たるものに見えますが、別のより深刻な問題に関連しています。難易度計算は、2016ブロックウィンドウ内の最初と最後のブロックに基づいており、隣接する2つのウィンドウの最後のブロック間の差異ではありません。この計算方法は、時間歪曲攻撃の可能性を生み出します。
! ビットコインセキュリティ侵害:タイムワープ攻撃
タイムワープアタックの仕組み
時間歪曲攻撃は、難易度計算のこの脆弱性を利用します。攻撃者はブロックのタイムスタンプを操作することで、ブロックチェーンが実際の時間の経過速度に比べて、時間的に前進する速度を大幅に遅らせます。具体的には:
この操作により、ブロックチェーンの時間が実際の時間に対して徐々に遅れ、難易度が常に低下し、攻撃者が非常に速い速度でブロックを生成し、大量のビットコインを取得できるようになります。
! ビットコインセキュリティ侵害:タイムワープ攻撃
攻撃の実現可能性と制限
理論的にはタイムワープ攻撃が深刻な結果をもたらす可能性がありますが、実施には多くの課題があります。
! ビットコインセキュリティ侵害:タイムワープ攻撃
ソリューション
時間歪曲攻撃の脆弱性を修正するために、以下の解決策が提案されました:
その中で、第三の提案は最も簡単で効果的であると考えられています。現在の提案では、この時間制限を2時間に設定することが推奨されており、つまり新しい難易度サイクルの最初のブロックのタイムスタンプは、前のサイクルの最後のブロックから2時間以上早くなることはできません。この制限は、時間の歪み攻撃を効果的に防ぐことができ、同時に通常のマイニングへの影響は小さいです。
これらの修正措置を実施することにより、ビットコインネットワークは時間歪み攻撃に対してより良く抵抗できるようになり、全体的な安全性と安定性が向上します。
! ビットコインセキュリティの脆弱性:タイムワープ攻撃