# ビットコイン取引コピー現象:低リスクだが興味深い特殊なケースビットコイン取引は通常、前の取引のIDを参照して未使用の出力を使用します。これらの出力は一度しか使用できず、そうでなければ二重支払いの問題を引き起こします。しかし、ビットコインシステムには完全に同じ取引が2セット存在します。この状況が発生するのは、コインベース取引には入力がなく、新たな通貨を生成するためです。したがって、異なる2つのコインベース取引が同じ金額を同じアドレスに送信する可能性があり、構築方法も完全に一致するため、完全に同じ取引が発生します。取引内容が同じであるため、それらの取引IDも一致します。なぜなら、取引IDは取引データのハッシュ値だからです。ハッシュ衝突が発生しない限り、重複した取引IDが生じることは不可能であり、ビットコインや他のどのシステムにおいてもハッシュ衝突はこれまでに発生したことがありません。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-2846f47605c9192f211e3a6b36c04d0d)この2つのグループの重複取引は、2010年11月14日から15日までの間に発生し、時間の幅は約16時間です。最初のグループの重複取引(d5d2....8599)は、ブロックチェーン上では別のグループの後に現れましたが、最初のコピーとして見なされます。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-edcc2e884cd4273116606ff15afa6e15)ブロックエクスプローラーのスクリーンショットから、最初の重複トランザクションが二つの異なるブロックに重複して表示されていることがわかります。興味深いことに、異なるブロックエクスプローラーがこれらの重複トランザクションを表示する際のデフォルトの動作は異なります。関連する四つのブロックの中で、他のトランザクションを含んでいるのは一つのブロックだけです。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-9e956bcc28b2786c805e8c59bc4aee37)これらの重複取引に関与するビットコインの総額は200 BTCですが、実際には100 BTCだけが存在します。現在のところ、この200 BTCはまだ使用されていません。理論的には、誰かが関連する秘密鍵を持っていれば、これらのビットコインを使用できる可能性があります。しかし、一度使用されると、重複した50 BTCは再度使用できなくなります。使用時にどのブロックから差し引かれるかは不確定である可能性があります。繰り返し取引はウォレットやブロックブラウザに混乱をもたらし、詐欺攻撃に利用される可能性もあります。この問題を解決するために、2012年3月にBIP30ソフトフォークが実施され、前の取引が使用されていない限り、繰り返し取引IDの使用が禁止されました。同年9月には、このルールがさらに修正され、すべてのブロックに適用されることになりましたが、最初の2つの繰り返し取引は例外として残されました。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-e19f04bf763b8df0cd361e2927ccaaba)2013年3月にアクティブ化されたBIP34は、coinbaseトランザクションにブロック高を含めることを要求し、これにより重複トランザクションの問題が大幅に解決されました。しかし、BIP34がアクティブ化される前のいくつかのブロックでは、coinbaseトランザクションのscriptSigの最初のバイトがちょうど将来有効なブロック高と一致しており、潜在的な重複の可能性が依然として存在することを意味します。次に重複取引が発生する可能性のあるブロックは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を参照して未使用の出力を使用します。これらの出力は一度しか使用できず、そうでなければ二重支払いの問題を引き起こします。しかし、ビットコインシステムには完全に同じ取引が2セット存在します。この状況が発生するのは、コインベース取引には入力がなく、新たな通貨を生成するためです。したがって、異なる2つのコインベース取引が同じ金額を同じアドレスに送信する可能性があり、構築方法も完全に一致するため、完全に同じ取引が発生します。取引内容が同じであるため、それらの取引IDも一致します。なぜなら、取引IDは取引データのハッシュ値だからです。ハッシュ衝突が発生しない限り、重複した取引IDが生じることは不可能であり、ビットコインや他のどのシステムにおいてもハッシュ衝突はこれまでに発生したことがありません。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
この2つのグループの重複取引は、2010年11月14日から15日までの間に発生し、時間の幅は約16時間です。最初のグループの重複取引(d5d2....8599)は、ブロックチェーン上では別のグループの後に現れましたが、最初のコピーとして見なされます。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
ブロックエクスプローラーのスクリーンショットから、最初の重複トランザクションが二つの異なるブロックに重複して表示されていることがわかります。興味深いことに、異なるブロックエクスプローラーがこれらの重複トランザクションを表示する際のデフォルトの動作は異なります。関連する四つのブロックの中で、他のトランザクションを含んでいるのは一つのブロックだけです。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
これらの重複取引に関与するビットコインの総額は200 BTCですが、実際には100 BTCだけが存在します。現在のところ、この200 BTCはまだ使用されていません。理論的には、誰かが関連する秘密鍵を持っていれば、これらのビットコインを使用できる可能性があります。しかし、一度使用されると、重複した50 BTCは再度使用できなくなります。使用時にどのブロックから差し引かれるかは不確定である可能性があります。
繰り返し取引はウォレットやブロックブラウザに混乱をもたらし、詐欺攻撃に利用される可能性もあります。この問題を解決するために、2012年3月にBIP30ソフトフォークが実施され、前の取引が使用されていない限り、繰り返し取引IDの使用が禁止されました。同年9月には、このルールがさらに修正され、すべてのブロックに適用されることになりましたが、最初の2つの繰り返し取引は例外として残されました。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
2013年3月にアクティブ化されたBIP34は、coinbaseトランザクションにブロック高を含めることを要求し、これにより重複トランザクションの問題が大幅に解決されました。しかし、BIP34がアクティブ化される前のいくつかのブロックでは、coinbaseトランザクションのscriptSigの最初のバイトがちょうど将来有効なブロック高と一致しており、潜在的な重複の可能性が依然として存在することを意味します。
次に重複取引が発生する可能性のあるブロックは1,983,702で、2046年1月頃に生成されると予想されています。この脆弱性を利用するコストは非常に高く、1500万ドルを超える可能性があり、攻撃者にとってほとんど実際の利益はありません。その後の潜在的な脆弱性ブロックは2078年まで出現しません。
! ビットコイン重複トランザクション:リスクの少ない興味深いバグ
この脆弱性を利用する難易度とコスト、そして機会の希少性を考慮すると、リピートトランザクションの問題はビットコインの主要なセキュリティ脅威とはならない。しかし、関与する時間のスパンと問題の独自性を考えると、これは依然として考えさせられるトピックである。ビットコインの開発者たちは2046年までにこの問題を根本的に解決しようとするかもしれないが、ソフトフォークを通じて実現する必要があるかもしれない。可能な解決策の一つはSegWitのコミットメントを強制することである。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ