# ビットコインにおける重複取引:興味深くリスクが極めて低い問題ビットコイン取引は通常、前の取引のIDを参照して未使用の出力を使用します。これらの出力は一度だけ使用可能で、そうでない場合は二重支払いを引き起こします。しかし、ビットコインの歴史の中で、確かに完全に同じ取引が二組発生したことがあります。この状況が発生する可能性があるのは、コインベース取引には入力がなく、新しい通貨が直接生成されるからです。したがって、二つの異なるコインベース取引が同じアドレスに同じ数量のビットコインを送信し、完全に同じ方法で構築される可能性があるため、結果としてそれらは完全に一致します。これらの取引が同じであるため、それらの取引IDも一致します。なぜなら、取引IDは取引データのハッシュ値だからです。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-2846f47605c9192f211e3a6b36c04d0d)この2つのグループの重複取引は、2010年11月14日から15日までの間に発生し、時間的なスパンは約16時間です。最初のグループの重複取引は、2番目のグループの間に挟まれています。取引IDがd5d2で始まるものを最初の重複取引として分類しますが、これはブロックチェーン上で別の重複取引の後に初めて現れました。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-edcc2e884cd4273116606ff15afa6e15)これらの重複取引はそれぞれ50ビットコインの価値があります。合計で200ビットコインが関与しており、異なる理解によれば100ビットコインかもしれません。ある程度、実際には100ビットコインは存在しません。現時点で、すべての200ビットコインは未使用のままです。もし誰かがこれらの出力に関連する秘密鍵を持っていれば、彼らはこれらのビットコインを使用できるかもしれません。しかし、一度使用されると、重複した50ビットコインは再度使用できなくなり失われるため、回収できるのは100ビットコインだけかもしれません。繰り返しの取引は明らかに問題があります。それらはウォレットやブロックブラウザに混乱を引き起こし、ビットコインの出所を不明瞭にします。また、いくつかの攻撃や脆弱性を引き起こす可能性があります。例えば、誰かが2回の繰り返し取引を使って誰かに2回支払うことができます。受取人がこの資金を使用しようとすると、回収できる資金が半分しかないことに気付くかもしれません。重複取引の問題を解決するために、2012年3月にソフトフォークが実施され、前の取引IDが使用されていない限り、重複取引IDを使用しての取引が禁止されました。2012年9月、このルールは、前述の2つの重複取引を除くすべてのブロックに適用されるように修正されました。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-9e956bcc28b2786c805e8c59bc4aee37)2013年3月、ソフトフォークが実施され、coinbaseトランザクションにブロック高を含めることが要求されました。これにより、重複トランザクションの問題が完全に解決されたようで、現在すべてのトランザクションはユニークであるべきです。しかし、BIP34がアクティブになる前のいくつかのブロックでは、coinbaseトランザクションのscriptSigの最初のバイトがちょうど将来有効なブロック高と一致しています。したがって、BIP34はほとんどのケースでこの問題を修正しましたが、100%完璧ではありません。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-e19f04bf763b8df0cd361e2927ccaaba)次に重複取引が発生する可能性のあるブロックは1,983,702で、2046年1月頃に生成されると予想されています。もしマイナーがこの攻撃を行いたい場合、彼らはこのブロックを見つけるために十分な幸運が必要なだけでなく、現在のビットコイン価格で計算すると1500万ドルを超える可能性のある巨額のコストを支払う必要があります。取引の複製の難しさとコスト、そしてそれを利用する機会が非常に稀であることを考慮すると、この脆弱性はビットコインの主要なセキュリティ問題とは言えません。! [ビットコイン重複トランザクション:リスクの少ない興味深いバグ](https://img-cdn.gateio.im/social/moments-0076e239e15e09665bdc3aaa08391cef)それにもかかわらず、開発者たちは何年もの間この問題に多くの時間を費やしてきました。2046年という日付は、一部の開発者にとってこの問題を修正するための最終期限かもしれません。このバグを修正する方法はいくつかあり、ソフトフォークが必要になる可能性があります。修正方法の一つは、SegWitのコミットを強制することです。! [ビットコイン重複トランザクション:最小限のリスクで興味深いバグ](https://img-cdn.gateio.im/social/moments-fb0734843d00c4922acda3f85fd02126)
ビットコイン歴史の中の繰り返し取引:原因、影響及び未来の課題
ビットコインにおける重複取引:興味深くリスクが極めて低い問題
ビットコイン取引は通常、前の取引のIDを参照して未使用の出力を使用します。これらの出力は一度だけ使用可能で、そうでない場合は二重支払いを引き起こします。しかし、ビットコインの歴史の中で、確かに完全に同じ取引が二組発生したことがあります。この状況が発生する可能性があるのは、コインベース取引には入力がなく、新しい通貨が直接生成されるからです。したがって、二つの異なるコインベース取引が同じアドレスに同じ数量のビットコインを送信し、完全に同じ方法で構築される可能性があるため、結果としてそれらは完全に一致します。これらの取引が同じであるため、それらの取引IDも一致します。なぜなら、取引IDは取引データのハッシュ値だからです。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
この2つのグループの重複取引は、2010年11月14日から15日までの間に発生し、時間的なスパンは約16時間です。最初のグループの重複取引は、2番目のグループの間に挟まれています。取引IDがd5d2で始まるものを最初の重複取引として分類しますが、これはブロックチェーン上で別の重複取引の後に初めて現れました。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
これらの重複取引はそれぞれ50ビットコインの価値があります。合計で200ビットコインが関与しており、異なる理解によれば100ビットコインかもしれません。ある程度、実際には100ビットコインは存在しません。現時点で、すべての200ビットコインは未使用のままです。もし誰かがこれらの出力に関連する秘密鍵を持っていれば、彼らはこれらのビットコインを使用できるかもしれません。しかし、一度使用されると、重複した50ビットコインは再度使用できなくなり失われるため、回収できるのは100ビットコインだけかもしれません。
繰り返しの取引は明らかに問題があります。それらはウォレットやブロックブラウザに混乱を引き起こし、ビットコインの出所を不明瞭にします。また、いくつかの攻撃や脆弱性を引き起こす可能性があります。例えば、誰かが2回の繰り返し取引を使って誰かに2回支払うことができます。受取人がこの資金を使用しようとすると、回収できる資金が半分しかないことに気付くかもしれません。
重複取引の問題を解決するために、2012年3月にソフトフォークが実施され、前の取引IDが使用されていない限り、重複取引IDを使用しての取引が禁止されました。2012年9月、このルールは、前述の2つの重複取引を除くすべてのブロックに適用されるように修正されました。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
2013年3月、ソフトフォークが実施され、coinbaseトランザクションにブロック高を含めることが要求されました。これにより、重複トランザクションの問題が完全に解決されたようで、現在すべてのトランザクションはユニークであるべきです。
しかし、BIP34がアクティブになる前のいくつかのブロックでは、coinbaseトランザクションのscriptSigの最初のバイトがちょうど将来有効なブロック高と一致しています。したがって、BIP34はほとんどのケースでこの問題を修正しましたが、100%完璧ではありません。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ
次に重複取引が発生する可能性のあるブロックは1,983,702で、2046年1月頃に生成されると予想されています。もしマイナーがこの攻撃を行いたい場合、彼らはこのブロックを見つけるために十分な幸運が必要なだけでなく、現在のビットコイン価格で計算すると1500万ドルを超える可能性のある巨額のコストを支払う必要があります。取引の複製の難しさとコスト、そしてそれを利用する機会が非常に稀であることを考慮すると、この脆弱性はビットコインの主要なセキュリティ問題とは言えません。
! ビットコイン重複トランザクション:リスクの少ない興味深いバグ
それにもかかわらず、開発者たちは何年もの間この問題に多くの時間を費やしてきました。2046年という日付は、一部の開発者にとってこの問題を修正するための最終期限かもしれません。このバグを修正する方法はいくつかあり、ソフトフォークが必要になる可能性があります。修正方法の一つは、SegWitのコミットを強制することです。
! ビットコイン重複トランザクション:最小限のリスクで興味深いバグ