Doublespend

如何防止這種雙花攻擊?

  • May 13, 2015

我知道,使用者無法在鏈中創建分叉。

此外,據說由於每筆交易都是公開宣布的,因此任何在同一條鏈上的雙重支付嘗試都將被拒絕,因為網路會知道這些比特幣之前已經在鏈中花費過。但是網路如何確定這些比特幣以前已經被使用過,因為付款人和收款人的身份未知?只有新創建的地址在支出時是已知的,以後可以在雙花期間更改。

例如,如果 Alice 使用 0000ab578c4 作為她的地址向 Bob 發送了 10 個 BTC,這構成了區塊鏈中第 50 個區塊的一部分。現在她再次使用同一鏈的第 67 個區塊中的另一個地址 004325bda 向 Bob 花費了 10 BTC,網路如何確定這是雙花?(沒有人知道 004325bda 屬於誰)。

交易創建未使用的交易輸出utxoUTXO 是唯一可辨識的。UTXO 是不可分割的,當他們花錢時,它們會被完全摧毀。(這就是為什麼您需要將零錢寄回給自​​己。)當然,這也意味著您無法選擇從哪個地址匯款,實際上“匯款地址”只是作為收到資金付款的地址隱含存在。

因此,將所有這些放在一起,每當有人試圖花錢時,網路的節點都會檢查相應的 UTXO 是否可以花費,即是否在 UTXO 集合中列出。

如果有人嘗試花兩次錢,則 UTXO 將已經被第一次交易消耗,因此將不再列在 UTXO 集合中。

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