Doublespend
如何防止這種雙花攻擊?
我知道,使用者無法在鏈中創建分叉。
此外,據說由於每筆交易都是公開宣布的,因此任何在同一條鏈上的雙重支付嘗試都將被拒絕,因為網路會知道這些比特幣之前已經在鏈中花費過。但是網路如何確定這些比特幣以前已經被使用過,因為付款人和收款人的身份未知?只有新創建的地址在支出時是已知的,以後可以在雙花期間更改。
例如,如果 Alice 使用 0000ab578c4 作為她的地址向 Bob 發送了 10 個 BTC,這構成了區塊鏈中第 50 個區塊的一部分。現在她再次使用同一鏈的第 67 個區塊中的另一個地址 004325bda 向 Bob 花費了 10 BTC,網路如何確定這是雙花?(沒有人知道 004325bda 屬於誰)。
交易創建未使用的交易輸出utxo。UTXO 是唯一可辨識的。UTXO 是不可分割的,當他們花錢時,它們會被完全摧毀。(這就是為什麼您需要將零錢寄回給自己。)當然,這也意味著您無法選擇從哪個地址匯款,實際上“匯款地址”只是作為收到資金付款的地址隱含存在。
因此,將所有這些放在一起,每當有人試圖花錢時,網路的節點都會檢查相應的 UTXO 是否可以花費,即是否在 UTXO 集合中列出。
如果有人嘗試花兩次錢,則 UTXO 將已經被第一次交易消耗,因此將不再列在 UTXO 集合中。