Transaction-Id

當兩個 txid 碰撞時會發生什麼?

  • September 8, 2015

假設我可以創建 SHA256d 衝突,並使用此功能創建兩個具有相同雜湊值的事務,A 和 B。這些事務不相同,但它們的雜湊值相同。

我將交易 A 送出到網路,並等待它得到一些確認。然後,我送出交易B。它會被包含到鏈中嗎?它會覆蓋事務A嗎?

如果前兩個問題的答案是肯定的,那麼如果包含交易 B 的區塊被重組對外連結會發生什麼?交易 A 會不會被覆蓋?

不可以。交易 A 入鏈後,交易 B 無效,不會被挖礦。如果它確實出現在已開采的區塊中,則整個區塊無效。

它並不總是這樣。最初,如果一個事務與前一個事務具有相同的 txid,它將覆蓋第一個事務。然後,如果該區塊被重組到鏈外,第二筆交易將被刪除,但第一筆交易不會被添加。換句話說,添加和刪除區塊會改變未使用交易集的狀態。

這顯然是荒謬的,所以在BIP 30下,當第一個輸出的任何輸出仍未使用時,包括具有相同 txid 的第二個交易是無效的。它曾經由區塊的時間戳強制執行,但現在它適用於區塊鏈中的每個區塊,除了違反此規則的兩個區塊

引用自:https://bitcoin.stackexchange.com/questions/40444