Transaction-Verification

如何判斷交易是否有效?

  • January 25, 2021

所以我已經閱讀了一段時間的比特幣和區塊鏈,但我還沒有完全理解它。我了解比特幣在 DLT 上的槓桿作用,它使用密碼學來驗證交易。這是我到目前為止所理解的:

  • 當我進行交易時,此交易被添加到未確認交易池中
  • 這個未經確認的交易池形成一個區塊,礦工將解決一個數學問題作為驗證
  • 第一個解決它的礦工將驗證區塊並將其添加到鏈中

但是,他們怎麼知道我的交易是否有效?如果我有 1 BTC 但決定發送 2 BTC 怎麼辦,數學問題的解決如何驗證我沒有 2 BTC?如果我剛剛使用法定貨幣從 Coinbase 購買了 5 個 BTC,怎麼會有人知道我有 5 個 BTC?

我相信這應該不是一個非常困難的問題,但我似乎無法完全理解它。希望有人能指出正確的方向並啟發我謝謝!

當您在交易中花費比特幣時,該交易必須引用至少一個現有的未花費交易輸出 (UTXO) 並提供有效簽名證明您有權使用它。然後,交易消耗輸入中的 UTXO,並將值分配給輸出中新創建的 UTXO。

其他執行一種稱為“完全驗證節點”的比特幣軟體的網路參與者遵循所有比特幣交易(“區塊鏈”)的完整歷史,以維護現有的所有 UTXO 的完整集(“UTXO 集”)。您可以將區塊鏈視為所有交易的日誌,而 UTXO 集則視為所有比特幣餘額的分類帳。

UTXO 由它們的“outpoint”唯一標識,該“outpoint”由創建輸出的交易 id 及其在交易輸出列表中的位置組成txid:vout:這意味著每個全節點都可以查找交易在輸入中花費的 UTXO 是否存在於它們的 UTXO 集中。他們還檢查交易是否正確建構,包括交易是否滿足 UTXO 的鎖定條件、簽名是否有效,以及交易是否通過分配比輸入更多的輸出來創造新的貨幣。

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