# ビットコインのセキュリティリスク:時間歪曲攻撃の解析2025年3月、一人のビットコイン開発者が"大共識清理"と呼ばれるソフトフォーク提案を提出しました。このアップグレードは、ビットコインプロトコルに長年存在しているいくつかの脆弱性や弱点を修正することを目的としており、その中には私たちが以前に議論した重複取引の問題も含まれています。本稿では、もう一つのより深刻な脆弱性である"時間扭曲攻撃"について重点的に探ります。! [ビットコインセキュリティ侵害:タイムワープ攻撃](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ブロックウィンドウ内の最初と最後のブロックのタイムスタンプ差を計算します。このウィンドウには実際には2015個のブロック間隔(2016から1を引いた数)が含まれています。したがって、理論的に使用される関連目標時間は60秒 × 10分 × 2015個の間隔 = 1,209,000秒です。しかし、ビットコインプロトコルは目標を計算する際に2016という数字を使用しています。60秒 × 10分 × 2016 = 1,209,600秒。これは小さな「1足りない」エラーであり、おそらくブロックの数とブロック間隔の数を混同したために発生した可能性があります。このエラーは、目標時間が必要な時間よりも0.05%長くなる原因となります。言い換えれば、ビットコインの実際の目標ブロック間隔は10分ではなく、10分と0.3秒です。このわずかな差は実際の運用ではそれほど重要ではありません。なぜなら、ビットコインの誕生以来、平均ブロック間隔は約9分36秒を維持しており、明らかに10分を下回っているからです。これは主に2009年以来、ネットワークのハッシュレートが継続的に成長しているためです。## タイムワープアタックの原理時間歪曲攻撃は2011年頃に初めて発見され、難易度計算におけるこの微小なエラーを利用しています。マイニングが完全に集中化していると仮定すると、マイナーはプロトコルが許可する範囲内で任意のタイムスタンプを設定できます。この攻撃では、マイナーはほとんどのブロックのタイムスタンプを前のブロックよりも1秒遅く設定し、ブロックチェーンが時間的にゆっくりと進行するようにしながら、MPTルールを遵守します。時間の進行をできるだけ遅くするために、マイナーは6つの連続したブロックで同じタイムスタンプを保持し、その後7番目のブロックで1秒追加し、こうしてループします。この操作はブロックチェーンの時間が現実の時間に対して徐々に遅れ、難易度が常に増加し、マイニングがますます困難になることを引き起こします。しかし、攻撃効果を高めるために、マイナーは各難易度調整サイクルの最後のブロックのタイムスタンプを現実の時間に設定します。そして、次のサイクルの最初のブロックは過去に戻され、前のサイクルの倒数第二のブロックよりも1秒遅く設定されます。この方法はMPTルールに従っており、単一の外れ値は11のブロックの中央値に著しい影響を与えません。この方法により、最初のサイクル後の難易度は影響を受けません。しかし、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月、一人のビットコイン開発者が"大共識清理"と呼ばれるソフトフォーク提案を提出しました。このアップグレードは、ビットコインプロトコルに長年存在しているいくつかの脆弱性や弱点を修正することを目的としており、その中には私たちが以前に議論した重複取引の問題も含まれています。本稿では、もう一つのより深刻な脆弱性である"時間扭曲攻撃"について重点的に探ります。
! ビットコインセキュリティ侵害:タイムワープ攻撃
ビットコインブロックタイムスタンプ保護メカニズム
時間の歪み攻撃について深く探る前に、現在の時間操作保護ルールを理解する必要があります:
中位過去時間(MPT)ルール:ブロックのタイムスタンプは前の11ブロックの中央値の時間よりも遅くなければなりません。
未来のブロック時間ルール:ブロックのタイムスタンプはノードのピアの中央値から2時間以上超えてはいけません。ノードの時間とローカルシステムクロックとの間に許容される最大90分の差があります。
MPTルールはブロックのタイムスタンプが過度に遡及するのを防ぎ、未来のブロックルールはタイムスタンプが過度に先行するのを防ぎます。過去のタイムスタンプを未来のタイムスタンプのように厳しく制限することはできないことに注意が必要です。これは初期のブロックチェーンの同期プロセスに影響を与える可能性があるためです。タイムディスカウント攻撃は、はるかに遡及したタイムスタンプを偽造することによって実現されます。
! ビットコインセキュリティ侵害:タイムワープ攻撃
難易度調整アルゴリズムの微小な誤差
ビットコインの難易度調整周期は2016個のブロックを含み、10分を目標ブロック間隔とし、約2週間に相当します。マイニングの難易度調整を計算する際、プロトコルは関連する2016ブロックウィンドウ内の最初と最後のブロックのタイムスタンプ差を計算します。このウィンドウには実際には2015個のブロック間隔(2016から1を引いた数)が含まれています。したがって、理論的に使用される関連目標時間は60秒 × 10分 × 2015個の間隔 = 1,209,000秒です。
しかし、ビットコインプロトコルは目標を計算する際に2016という数字を使用しています。60秒 × 10分 × 2016 = 1,209,600秒。これは小さな「1足りない」エラーであり、おそらくブロックの数とブロック間隔の数を混同したために発生した可能性があります。
このエラーは、目標時間が必要な時間よりも0.05%長くなる原因となります。言い換えれば、ビットコインの実際の目標ブロック間隔は10分ではなく、10分と0.3秒です。このわずかな差は実際の運用ではそれほど重要ではありません。なぜなら、ビットコインの誕生以来、平均ブロック間隔は約9分36秒を維持しており、明らかに10分を下回っているからです。これは主に2009年以来、ネットワークのハッシュレートが継続的に成長しているためです。
タイムワープアタックの原理
時間歪曲攻撃は2011年頃に初めて発見され、難易度計算におけるこの微小なエラーを利用しています。マイニングが完全に集中化していると仮定すると、マイナーはプロトコルが許可する範囲内で任意のタイムスタンプを設定できます。この攻撃では、マイナーはほとんどのブロックのタイムスタンプを前のブロックよりも1秒遅く設定し、ブロックチェーンが時間的にゆっくりと進行するようにしながら、MPTルールを遵守します。時間の進行をできるだけ遅くするために、マイナーは6つの連続したブロックで同じタイムスタンプを保持し、その後7番目のブロックで1秒追加し、こうしてループします。
この操作はブロックチェーンの時間が現実の時間に対して徐々に遅れ、難易度が常に増加し、マイニングがますます困難になることを引き起こします。しかし、攻撃効果を高めるために、マイナーは各難易度調整サイクルの最後のブロックのタイムスタンプを現実の時間に設定します。そして、次のサイクルの最初のブロックは過去に戻され、前のサイクルの倒数第二のブロックよりも1秒遅く設定されます。この方法はMPTルールに従っており、単一の外れ値は11のブロックの中央値に著しい影響を与えません。
この方法により、最初のサイクル後の難易度は影響を受けません。しかし、2回目の調整サイクルから、難易度は下がり始めます。この時、マイナーは非常に速い速度でブロックを作成し、大量のビットコインを生成する可能性があり、それによりこれらの通貨を売却することで利益を得ることができます。
! ビットコインセキュリティ侵害:タイムワープ攻撃
攻撃実現可能性分析
理論的にはこの攻撃は壊滅的なものですが、実施には多くの課題があります。
! ビットコインセキュリティ侵害:タイムワープ攻撃
考えられる解決策
この脆弱性の修正は比較的簡単ですが、ソフトフォークプロトコルの変更が必要になる可能性があります。一部の可能な解決策には、次のものが含まれます:
最新の大共識クリーンアップ提案では、開発者は2時間の時間制限を採用する傾向にあります。この制限は、難易度調整周期の目標時間の約0.6%であり、難易度の下方操作能力を効果的に抑制することができます。
最終的にどのような解決策が採用されようとも、この脆弱性を修正することはビットコインネットワークの安全性と安定性をさらに強化し、その長期的な発展のためのより強固な基盤を築くことになります。
! ビットコインセキュリティの脆弱性:タイムワープ攻撃