# ビットコインのマイニングメカニズムでゼロデイのバグが発見されましたビットコインのマイニングアルゴリズムには、非常に高い速度でブロックを採掘できる計算エラーが存在していました。これについて調査者のロイック・モレルが語りました。> サトシは間違えた。 > > ビットコインのマイニングには最初の日からバグがあります。これはサトシの単純な計算ミスであり、狂った速度でブロックをマイニングできるように悪用される可能性があります。これはBIP-0054 (議論中)の一つのバグです。私は… pic.twitter.com/GurNv3qKrZ> > — ロイック・モレル (@Loic_Pandul) 2026年4月11日公開情報によると、不具合は難易度調整の仕組みに関係しています約2週間ごとに(2016ブロックごと)、ノードはターゲット値を再計算し、10分ごとに1つのブロックが出現するように調整します。これはマイナーの計算能力に関係なく行われます。この調整のために、ノードは最後の期間の長さを測定し、ターゲット値(2016 x 600 = 1,209,600秒)と比較し、その後難易度を適切に変更します。> > 「この計算に誤りがあります。過去の期間のブロックのタイムスタンプを測定する際、ノードは最初のブロックのタイムスタンプと最後のブロックのタイムスタンプを比較します。直感的には論理的に思えますが、実際には誤りです。なぜなら、最初と最後のブロックの間には2015のインターバルしかなく、2016ではないからです」とモレルは説明しました。> > > t0を最初のブロックのタイムスタンプ、t2015を最後のブロックのタイムスタンプとすると、ノードは経過時間をT = t2015 — t0として計算します。これにより、2015のインターバルが得られます(t0からt1まで > t1からt2まで > … > t2014からt2015まで)。2016のインターバルを得るには、別の式を使う必要があります:T = t2015 — t-1、ここでt-1は前の期間の最後のブロックのタイムスタンプです。これは「1つずらし誤差」と呼ばれる誤りです。このバグは、難易度が約0.05%高めに設定される誤差を引き起こします。しかし、実際の問題は別のところにあります。この欠陥は、調整期間が重ならないことを引き起こします。つまり、1つの期間の最後のブロックのタイムスタンプは次の計算に考慮されません。## 時間操作このギャップにより、「時間歪曲攻撃」が可能になります。その仕組みは次の通りです。1. 大部分の計算能力をコントロールしているマイナーが、(最後のブロックを除くすべてのブロックに最小の許容タイムスタンプを設定し始める。2. その期間の最後のブロックでは、最大の許容タイムスタンプを人工的に設定。3. 期間終了後、難易度が調整される。攻撃者によるタイムスタンプの操作により、実際の期間よりも長く測定され、結果として難易度が下がる。4. 攻撃者は次の期間でも同様の操作を繰り返す。期間が重ならないため、次の攻撃の最初のブロックは過去のタイムスタンプを持ち、前のブロックは未来のタイムスタンプを持つことになる。このギャップは期間ごとに拡大します。この操作を何度も繰り返すことで、攻撃者は理論上、マイニングの難易度を1秒あたり最大6ブロックまで下げることが可能です)10分ごとに1つ(。> > 「結果は恐ろしいものになるでしょう:時間によるブロックの停止は無意味になり、ネットワークは過負荷になり、再編成の回数は増え、トランザクションの承認は価値を失います。これにより、攻撃者はブロック報酬を狂ったペースで集めることができるようになるでしょう」と調査者は付け加えました。> > > 最初と最後のブロックが一致すれば、この攻撃は不可能になります。## この誤りをどう修正するか?モレルは、BIP-0054のソフトフォークによって問題を解決できると指摘しました。この提案では、新しい期間の最初のブロックのタイムスタンプは、前の期間の最後のブロックのタイムスタンプを2時間を超えない範囲で超えないように制限します。この制約により、期間間の「ある種の連続性」が回復され、時間操作の可能性を防ぎ、「時間歪曲攻撃」を不可能にします。ちなみに、2月にCastle Island Venturesのニック・カーターは、量子脅威によるビットコインの「企業買収」を予測しました。
ビットコインのマイニングメカニズムでゼロデイの脆弱性が発見される - ForkLog: 暗号通貨、AI、シンギュラリティ、未来
ビットコインのマイニングアルゴリズムには、非常に高い速度でブロックを採掘できる計算エラーが存在していました。これについて調査者のロイック・モレルが語りました。
公開情報によると、不具合は難易度調整の仕組みに関係しています
約2週間ごとに(2016ブロックごと)、ノードはターゲット値を再計算し、10分ごとに1つのブロックが出現するように調整します。これはマイナーの計算能力に関係なく行われます。この調整のために、ノードは最後の期間の長さを測定し、ターゲット値(2016 x 600 = 1,209,600秒)と比較し、その後難易度を適切に変更します。
t0を最初のブロックのタイムスタンプ、t2015を最後のブロックのタイムスタンプとすると、ノードは経過時間をT = t2015 — t0として計算します。これにより、2015のインターバルが得られます(t0からt1まで > t1からt2まで > … > t2014からt2015まで)。
2016のインターバルを得るには、別の式を使う必要があります:T = t2015 — t-1、ここでt-1は前の期間の最後のブロックのタイムスタンプです。
これは「1つずらし誤差」と呼ばれる誤りです。このバグは、難易度が約0.05%高めに設定される誤差を引き起こします。
しかし、実際の問題は別のところにあります。この欠陥は、調整期間が重ならないことを引き起こします。つまり、1つの期間の最後のブロックのタイムスタンプは次の計算に考慮されません。
時間操作
このギャップにより、「時間歪曲攻撃」が可能になります。その仕組みは次の通りです。
この操作を何度も繰り返すことで、攻撃者は理論上、マイニングの難易度を1秒あたり最大6ブロックまで下げることが可能です)10分ごとに1つ(。
最初と最後のブロックが一致すれば、この攻撃は不可能になります。
この誤りをどう修正するか?
モレルは、BIP-0054のソフトフォークによって問題を解決できると指摘しました。
この提案では、新しい期間の最初のブロックのタイムスタンプは、前の期間の最後のブロックのタイムスタンプを2時間を超えない範囲で超えないように制限します。
この制約により、期間間の「ある種の連続性」が回復され、時間操作の可能性を防ぎ、「時間歪曲攻撃」を不可能にします。
ちなみに、2月にCastle Island Venturesのニック・カーターは、量子脅威によるビットコインの「企業買収」を予測しました。