Transaction-Verification
節點如何驗證新交易中的 UTXO 未被使用?
它是否會檢查 UTXO 首次出現的位置和目前時間之間的每個塊,以確保它當時沒有被使用?或者是否有其他記憶體或其他方法可以使檢查更快?
它是否會檢查 UTXO 首次出現的位置和目前時間之間的每個塊,以確保它當時沒有被使用?
是的,但是當交易進來時,這個檢查並不是針對每個 UTXO 單獨進行的,它是一個持續的過程,它指定了網路的目前狀態。
比特幣節點將獨立處理網路的整個交易歷史,同時它會建立一個未花費交易輸出(UTXO)的索引,顧名思義,這些輸出是尚未花費的交易輸出,以及因此在網路上花費是有效的。隨著新輸出的創建,它們被添加到 UTXO 集中。同樣,當 UTXO 被用作交易的輸入時,它會從 UTXO 集中刪除。因此,任何有效的新交易都必須將這些 UTXO 中的一個或多個指定為輸入(coinbase 交易除外,它沒有任何輸入)。