Doublespend

在這種情況下,比特幣程式碼如何從技術上解決雙重支出?

  • July 11, 2022

假設 Alice 向 Bob 發送了 5 個 BTC,Alice 試圖通過再次向 carl 發送相同的 5 BTC 輸入來進行雙花,假設 Alice 也是礦工節點之一。

  1. 在這裡,Alice 試圖將這 2 筆雙花交易放入同一個區塊中
  2. 假設 Alice 解決了雜湊難題並在同一個塊中廣播了這兩個交易

因為在第一個交易中,輸入 UTXO 和輸出 UTXO 是有效的,而在第二個交易中,在同一個區塊中,甚至有輸入 UTXO 未花費,但它是雙花的。當塊被廣播時,這兩個交易同時被廣播,

問題:

  • 其他節點將如何通過比特幣程式碼在技術上驗證這兩個同時廣播的交易(這兩個交易在同一個區塊中的位置)?
  • 當兩個交易包含在同一個區塊中時,比特幣程式碼如何從技術上解決這種雙重支出(當廣播區塊時,這兩個交易同時廣播)?

擁有足夠的工作量證明是區塊有效的必要標準,但這並不是區塊有效的充分標準。工作量證明用於限制對共享全域狀態的更新節奏,並作為一種以分佈式方式選擇下一個塊的作者的機制。此外,區塊必須首先通過所有約 40 條規則才能使區塊有效。

包含兩個衝突事務的塊是無效的。驗證它的完整節點將在驗證第一個事務時將 UTXO 標記為已用,並且當第二個事務引用相同的 UTXO 作為其輸入時,UTXO 不再可用並且塊被拒絕。

如果一個區塊包含兩個相互衝突的交易(雙花),那麼該區塊是無效的,儘管工作證明是正確的。因此,礦工浪費了他們的工作,該區塊將被所有驗證節點拒絕。

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