# ビットコイン安全脆弱性:時間歪曲攻撃近日、あるビットコイン開発者がビットコインプロトコルに長年存在するいくつかの脆弱性と弱点を修正することを目的とした新しいソフトフォーク提案を提出しました。その中で比較的深刻な脆弱性は「タイムディストーション攻撃」と呼ばれており、この記事ではそれについて詳しく探討します。! [ビットコインセキュリティ侵害:タイムワープ攻撃](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ブロックウィンドウ内の最初と最後のブロック間のタイムスタンプの差を計算します。この2016ブロックのウィンドウは実際には2015ブロックの間隔を含むため、理論上使用される目標時間は60秒 * 10分 * 2015間隔で、1,209,000秒に等しくなります。しかし、ビットコインプロトコルは目標を計算するために2016という数字を使用しています。60秒 * 10分 * 2016 = 1,209,600秒。これは「1つ不足」のエラーであり、ブロック間の間隔を混同したことが原因である可能性があります。このエラーは、目標時間が本来よりも0.05%長くなっていることを引き起こします。したがって、ビットコインの実際の目標間隔時間は10分0.3秒で、10分ちょうどではありません。この誤差は微々たるものに見えますが、別のより深刻な問題に関連しています。## 時間ねじれ攻撃の原理時間の歪み攻撃は、難易度計算のこの誤りを利用します。理想的な状況では、マイニングが完全に中央集権化されていると仮定すると、マイナーはプロトコルで許可されている任意のタイムスタンプを設定できます。攻撃者は次の戦略を取ります:1. 大多数のブロックに対して、タイムスタンプを前のブロックから1秒進めるように設定します。2. できるだけ遅く時間を進めるために、マイナーは連続して6つのブロックで同じタイムスタンプを保持し、その後次のブロックで1秒時間を増やすことができます。3. 各難易度調整サイクルの最後のブロックでは、タイムスタンプを実世界の時間に設定します。4. 次の周期の最初のブロックのタイムスタンプは再び過去に戻り、前の周期の倒数第二のブロックよりも1秒早くなります。この操作はMTPルールに準拠しています。なぜなら、単一の異常が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. 新しい制限ルールを設定する:新しい難易度周期の最初のブロックの時間が、前の周期の最後のブロックの特定の分数よりも早くないことを要求する。現在、大共識クリア提案では、第三の方法を採用し、時間制限を2時間に設定することを提案しています。この時間帯は難易度調整サイクルの目標時間の約0.6%に相当し、難易度を下げる操作の能力を効果的に制限することができます。具体的な猶予期間については、業界内で異なる意見があります。10分の制限と2時間の制限にはそれぞれ利点と欠点があり、慎重に考慮する必要があります。最終的にどの方案を採用するにせよ、この脆弱性を修正することは、ビットコインネットワークの安全性と安定性を大幅に向上させるでしょう。! [ビットコインセキュリティの脆弱性:タイムワープ攻撃](https://img-cdn.gateio.im/social/moments-ceb4c636ad7cdbe85d7dd25709ca2dd6)
ビットコインは時間歪み攻撃に直面しており、プロトコルの脆弱性が安全上の懸念を引き起こしています。
ビットコイン安全脆弱性:時間歪曲攻撃
近日、あるビットコイン開発者がビットコインプロトコルに長年存在するいくつかの脆弱性と弱点を修正することを目的とした新しいソフトフォーク提案を提出しました。その中で比較的深刻な脆弱性は「タイムディストーション攻撃」と呼ばれており、この記事ではそれについて詳しく探討します。
! ビットコインセキュリティ侵害:タイムワープ攻撃
ビットコインブロックタイムスタンプ保護メカニズム
時間の歪み攻撃について議論する前に、現在の時間操作保護ルールを振り返ってみましょう:
中位過去時間(MPT)ルール:ブロックのタイムスタンプは、最後の11ブロックの中央値の時間よりも遅くなければなりません。
未来のブロック時間ルール:ブロックのタイムスタンプは、ノードのピアの中央値の時間を2時間以上先行してはならない。ノードの時間とローカルシステムクロックの間の許容される最大の差は90分である。
MPTルールはブロックのタイムスタンプが過度に遡及するのを防ぎ、未来のブロックルールはタイムスタンプが過度に先行するのを防ぎます。注目すべきは、初期のブロックチェーン同期に影響を与える可能性があるため、過去のタイムスタンプを持つブロックを防ぐような未来のブロックルールのようなメカニズムを実施できないということです。タイムディストーション攻撃は、偽のタイムスタンプを利用してそれを遥かに過去に戻すことによって行われます。
! ビットコインセキュリティ侵害:タイムワープ攻撃
難易度調整期間の計算上の問題
ビットコインの難易度調整周期は2016ブロックを含み、10分のブロック目標で計算すると約2週間の時間になります。マイニング難易度調整を計算する際、プロトコルは関連する2016ブロックウィンドウ内の最初と最後のブロック間のタイムスタンプの差を計算します。この2016ブロックのウィンドウは実際には2015ブロックの間隔を含むため、理論上使用される目標時間は60秒 * 10分 * 2015間隔で、1,209,000秒に等しくなります。
しかし、ビットコインプロトコルは目標を計算するために2016という数字を使用しています。60秒 * 10分 * 2016 = 1,209,600秒。これは「1つ不足」のエラーであり、ブロック間の間隔を混同したことが原因である可能性があります。
このエラーは、目標時間が本来よりも0.05%長くなっていることを引き起こします。したがって、ビットコインの実際の目標間隔時間は10分0.3秒で、10分ちょうどではありません。この誤差は微々たるものに見えますが、別のより深刻な問題に関連しています。
時間ねじれ攻撃の原理
時間の歪み攻撃は、難易度計算のこの誤りを利用します。理想的な状況では、マイニングが完全に中央集権化されていると仮定すると、マイナーはプロトコルで許可されている任意のタイムスタンプを設定できます。攻撃者は次の戦略を取ります:
この操作はMTPルールに準拠しています。なぜなら、単一の異常が11ブロックの中央値に影響を与えないからです。この方法により、ブロックチェーンは徐々に実時間に遅れ、難易度は継続的に増加します。しかし、2回目の調整周期から、難易度は下方調整を開始し、マイナーは非常に速い速度でブロックを生成できるようになり、潜在的に大量のビットコインを生み出すことができます。
! ビットコインセキュリティ侵害:タイムワープ攻撃
攻撃の実現可能性と課題
理論的にはこの攻撃は壊滅的ですが、実施するにはいくつかの課題があります。
! ビットコインセキュリティ侵害:タイムワープ攻撃
考えられる解決策
この脆弱性を修正する方法はいくつかあります:
現在、大共識クリア提案では、第三の方法を採用し、時間制限を2時間に設定することを提案しています。この時間帯は難易度調整サイクルの目標時間の約0.6%に相当し、難易度を下げる操作の能力を効果的に制限することができます。
具体的な猶予期間については、業界内で異なる意見があります。10分の制限と2時間の制限にはそれぞれ利点と欠点があり、慎重に考慮する必要があります。最終的にどの方案を採用するにせよ、この脆弱性を修正することは、ビットコインネットワークの安全性と安定性を大幅に向上させるでしょう。
! ビットコインセキュリティの脆弱性:タイムワープ攻撃