# ビットコインの繰り返し取引:面白いがリスクが非常に小さい脆弱性## 概要ビットコイン取引は通常、前の取引のIDを参照して未使用の出力を使用します。これらの出力は一度だけ使用でき、そうでないと二重支払いが発生する可能性があります。しかし、ビットコインの歴史の中で、完全に同じ取引が二組存在したことがあります。これはcoinbase取引に入力がないためで、新しい通貨を生成します。したがって、二つの異なるcoinbase取引が同じアドレスに同じ数量の通貨を送信する可能性があり、構築方法も完全に一致するため、同じ取引が発生します。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-2846f47605c9192f211e3a6b36c04d0d)この2つのグループの重複取引は2010年11月14日から15日までの約16時間の間に発生しました。最初のグループの重複取引は、2番目のグループの間に挟まれています。取引IDがd5d2で始まるものを最初の重複取引として分類しますが、それは別の重複取引よりもブロックチェーン上に初めて現れた時間が遅れています。## 重複するトランザクションの詳細これらの重複取引はそれぞれ50 BTCの価値があり、合計200 BTCに関与しており、つまり100 BTCが重複計算されています。現時点では、この200 BTCは未使用です。理論的には、関連する秘密鍵を持っている人はこれらのビットコインを使うことができます。しかし、一度使用されると、重複した50 BTCは再び使用できなくなります。これらの通貨が使用される際にどのブロックから来るのかは、未定義である可能性があります。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-edcc2e884cd4273116606ff15afa6e15)## 取引の繰り返しの問題繰り返しの取引はウォレットやブロックエクスプローラーに混乱をもたらし、ビットコインの出所に対する不確実性を引き起こす可能性があります。また、誰かに二重に支払うといった攻撃に利用される可能性もありますが、実際には利用可能な資金は半分だけです。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-9e956bcc28b2786c805e8c59bc4aee37)## ソリューションこの問題を緩和するために、2012年3月にBIP30ソフトフォークが実施され、重複TXIDを使用した取引が禁止されました。2012年9月、このルールはさらに修正され、すべてのブロックに適用されることになりました。2013年3月にアクティブ化されたBIP34ソフトフォークは、コインベース取引にブロック高を含めることを要求し、これによって根本的に重複取引の問題が解決されました。その後、ノードは高価なBIP30チェックを停止しました。しかし、BIP34以前のいくつかのcoinbase取引のscriptSigの最初のバイトがちょうど将来有効なブロック高に一致します。これは、依然としてごくわずかな重複の可能性が存在することを意味します。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-e19f04bf763b8df0cd361e2927ccaaba)## 未来の潜在的リスク次に重複取引が発生する可能性のあるブロックは1,983,702で、2046年1月頃に生成されると予想されています。しかし、この脆弱性を利用するコストは1500万ドルを超え、ほとんど役に立たないでしょう。次の脆弱なブロックは2078年に出現すると予想されています。しかし、その時にはこの脆弱性を利用するコストはより高くなる可能性があります。! [ビットコイン重複トランザクション:リスクの少ない興味深いバグ](https://img-cdn.gateio.im/social/moments-0076e239e15e09665bdc3aaa08391cef)## まとめコピー取引の難しさ、コスト、および非常に少ない機会を考慮すると、この脆弱性はビットコインの主要なセキュリティ脅威とは見なされません。それにもかかわらず、開発者は何年にもわたってこの問題に多大な労力を注いできました。2046年はこの問題を完全に修正するための最終期限になるかもしれません。修正方法は、SegWitの約束を強制するようなソフトフォークを必要とする可能性があります。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-fb0734843d00c4922acda3f85fd02126)
ビットコインの重複取引:歴史的な脆弱性と未来の潜在的リスク分析
ビットコインの繰り返し取引:面白いがリスクが非常に小さい脆弱性
概要
ビットコイン取引は通常、前の取引のIDを参照して未使用の出力を使用します。これらの出力は一度だけ使用でき、そうでないと二重支払いが発生する可能性があります。しかし、ビットコインの歴史の中で、完全に同じ取引が二組存在したことがあります。これはcoinbase取引に入力がないためで、新しい通貨を生成します。したがって、二つの異なるcoinbase取引が同じアドレスに同じ数量の通貨を送信する可能性があり、構築方法も完全に一致するため、同じ取引が発生します。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
この2つのグループの重複取引は2010年11月14日から15日までの約16時間の間に発生しました。最初のグループの重複取引は、2番目のグループの間に挟まれています。取引IDがd5d2で始まるものを最初の重複取引として分類しますが、それは別の重複取引よりもブロックチェーン上に初めて現れた時間が遅れています。
重複するトランザクションの詳細
これらの重複取引はそれぞれ50 BTCの価値があり、合計200 BTCに関与しており、つまり100 BTCが重複計算されています。現時点では、この200 BTCは未使用です。理論的には、関連する秘密鍵を持っている人はこれらのビットコインを使うことができます。しかし、一度使用されると、重複した50 BTCは再び使用できなくなります。これらの通貨が使用される際にどのブロックから来るのかは、未定義である可能性があります。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
取引の繰り返しの問題
繰り返しの取引はウォレットやブロックエクスプローラーに混乱をもたらし、ビットコインの出所に対する不確実性を引き起こす可能性があります。また、誰かに二重に支払うといった攻撃に利用される可能性もありますが、実際には利用可能な資金は半分だけです。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
ソリューション
この問題を緩和するために、2012年3月にBIP30ソフトフォークが実施され、重複TXIDを使用した取引が禁止されました。2012年9月、このルールはさらに修正され、すべてのブロックに適用されることになりました。
2013年3月にアクティブ化されたBIP34ソフトフォークは、コインベース取引にブロック高を含めることを要求し、これによって根本的に重複取引の問題が解決されました。その後、ノードは高価なBIP30チェックを停止しました。
しかし、BIP34以前のいくつかのcoinbase取引のscriptSigの最初のバイトがちょうど将来有効なブロック高に一致します。これは、依然としてごくわずかな重複の可能性が存在することを意味します。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
未来の潜在的リスク
次に重複取引が発生する可能性のあるブロックは1,983,702で、2046年1月頃に生成されると予想されています。しかし、この脆弱性を利用するコストは1500万ドルを超え、ほとんど役に立たないでしょう。
次の脆弱なブロックは2078年に出現すると予想されています。しかし、その時にはこの脆弱性を利用するコストはより高くなる可能性があります。
! ビットコイン重複トランザクション:リスクの少ない興味深いバグ
まとめ
コピー取引の難しさ、コスト、および非常に少ない機会を考慮すると、この脆弱性はビットコインの主要なセキュリティ脅威とは見なされません。それにもかかわらず、開発者は何年にもわたってこの問題に多大な労力を注いできました。2046年はこの問題を完全に修正するための最終期限になるかもしれません。修正方法は、SegWitの約束を強制するようなソフトフォークを必要とする可能性があります。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ