This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
ビットコインの重複取引の脆弱性解析:歴史的原因、潜在的リスクと今後の課題
ビットコインの重複取引現象:珍しいシステムの欠陥
概要
ビットコイン取引は通常、前の取引のIDを引用して未使用の出力を使用します。これらの出力は一度だけ使用でき、それ以外の場合は二重支払いの問題が発生します。しかし、ビットコインシステムには確かに完全に同じ取引が2つ存在します。この状況が発生するのは、コインベース取引には入力がなく、新しいコインが直接生成されるためです。そのため、異なる2つのコインベース取引が同じ数量を同じアドレスに送信し、構築方法が完全に一致する可能性があるため、同じ取引IDが生成されるのです。それに加えて、取引IDが重複する唯一の可能性はハッシュの衝突ですが、これは現在の暗号技術ではほぼ不可能です。
この2つの重複取引は2010年11月14日から15日までの間に発生し、約16時間の間隔があります。最初の重複取引(d5d2....8599)は、2番目のグループの間に挟まれており、ブロックチェーン上に初めて現れた時間は遅れています。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
重複するトランザクションの詳細
ブロックチェーンブラウザには、最初の重複トランザクションが異なる2つのブロックに重複して表示されていることが示されています。異なるブロックチェーンブラウザでは、これらの重複トランザクションを表示する際にいくつかの違いがあり、あるものはデフォルトで古いブロックを表示し、別のものは新しいブロックを表示します。
関係する4つのブロックのうち、1つのブロック(91,812)だけが他の取引を含み、1ビットコインと19ビットコインを合併して20ビットコインになりました。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
重複出力の処理
同じトランザクションIDが2セット存在するため、これらの重複トランザクションは合計で200 BTCに関与しており、また100 BTCとして理解することもできます。現時点で、この200 BTCはまだ使われていません。理論的には、関連する秘密鍵を持つ人はこれらのビットコインを使うことができますが、一度使われると重複した50 BTCは使えなくなり失われるため、実際には100 BTCだけが回収可能です。これらの通貨が使われた後、どのブロックから差し引かれるかは、現時点では不明です。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
取引の重複に関する問題
重複取引はウォレットやブロックブラウザに混乱をもたらし、ビットコインの出所を曖昧にする可能性があります。また、例えば二回の重複取引で誰かに二回支払うという攻撃に使用されることもありますが、実際には利用可能な資金は半分だけです。これは取引所に対する攻撃に利用され、資金にエラーを引き起こそうとする可能性があります。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
ソリューション
重複取引の問題を解決するために、2012年3月にBIP30ソフトフォークが実施され、前の取引が消費されていない限り、重複取引IDの使用が禁止されました。同年9月、このルールはさらに修正され、すべてのブロックに適用されるようになりました。
2013年3月、BIP34ソフトフォークはコインベース取引にブロック高を含めることを要求し、これにより実質的に重複取引の問題が解決されました。その後、ノードはBIP30チェックを停止しました。この高コストなチェックはもはや必要ではなくなったからです。
! ビットコイン重複トランザクション:リスクの少ない興味深いバグ
将来の潜在的な問題
BIP34はほとんどの問題を解決しましたが、そのアクティベーション前のいくつかのブロックで、coinbaseトランザクションのscriptSigの最初のバイトがちょうど将来有効なブロック高と一致しています。これは、将来の特定のブロック高において、依然として重複トランザクションが発生する可能性があることを意味します。
次に重複取引が発生する可能性のあるブロックは1,983,702で、2046年1月頃に生成されると予測されています。この脆弱性を利用するには、マイナーが膨大な資金を投入する必要があり、現在のビットコインの価格で計算すると1500万ドルを超える可能性があり、実際の利益はほとんどありません。
その後の潜在的なリスクブロックは169985で、2078年に複製される可能性があります。同様に、この脆弱性を利用するコストも非常に高くなる可能性があります。
まとめ
取引のコピーの難易度、コスト、機会の希少性を考慮すると、この脆弱性はビットコインの主要なセキュリティ脅威とはなりません。それにもかかわらず、開発者は解決策を探し続けており、最終的にはソフトフォークを通じてこの問題を修正する必要があるかもしれません。1つの可能なアプローチは、SegWitの約束を強制することです。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ