Doublespend

如果交易在不同的區塊中重複會發生什麼?

  • December 20, 2021

我確定我在這裡遺漏了一些微不足道的東西,但我有一個問題。

假設有節點 A 和節點 B。我們向兩個節點發送交易。兩個節點現在都在其本地記憶體池中包含未經確認的交易。

節點 A 將交易包含在下一個區塊中,並具有成功的解決方案。節點 B 接受來自節點 A 的新塊,並通過創建另一個新塊來繼續鏈,包括它在下一個塊中較早收到的交易。

所以我們有這樣一種情況,節點 A 將交易包含在第一個區塊中,節點 B 將交易包含在第二個區塊中。這是如何預防的?

我知道雙重支出,但我讀過的資源通常談論相同的事務包含在兩個節點的下一個塊中,但在這種情況下,其中一個塊將被丟棄。

謝謝。

不管是相同還是不同的區塊,它仍然是雙花,因為兩筆交易都花費相同的硬幣。

在您的範例中,節點 B 不能將交易包含在塊中,因為沒有可花費的硬幣。

節點 B 接受來自節點 A 的新區塊鏈,現在通過創建一個新區塊來繼續該鏈,包括它在下一個區塊之前收到的交易。

當節點 B 接受來自節點 A 的新塊時,它會從其記憶體池中刪除該塊中出現的所有未確認交易。節點 B 只會在其新區塊中使用剩餘的記憶體池交易。

節點 B 和所有其他節點已經從其 UTXO 列表中刪除了交易消耗的輸入。這意味著任何包含嘗試使用已使用 UTXO 的事務的新塊都將被視為無效。

如果節點 B 沒有從其記憶體池中刪除已確認的交易並生成另一個包含已存在於區塊鏈中的交易的區塊,則所有其他節點將拒絕節點 B 的新區塊,並且節點 B 將無法花費區塊獎勵。

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