Transactions
在兩個使用者之間轉移 BTC 時,網路如何驗證之前的交易?
在兩個使用者之間轉移 BTC 時,新交易將包含對先前交易的引用。
例如,如果我的使用者 A 希望將 1 BTC 轉移給使用者 B,他將需要總共 1 BTC 的“n”筆交易才能使交易有效。如果這些“n”交易發生在它們之間的很長一段時間(比如 1 年)並且出於某種原因,我覺得絕對有必要驗證這些“n”交易是否確實發生了。
我將如何找到相關的塊?
我會解密該塊以讀取它嗎?在實際實踐中是否曾經這樣做過,這樣做是否昂貴且耗時?
我覺得絕對有必要驗證這些“n”交易確實發生了。我將如何找到相關的塊?
交易消耗輸入並創建輸出(新的“未使用的交易輸出”或 UTXO)。為了使交易有效,每個輸入必須是網路上存在的有效 UTXO。全節點保持所有有效 UTXO 的持續更新索引,它們可以檢查傳入的交易。
交易輸入將通過交易 ID 和輸出索引引用創建它的交易。所以一個完整的節點只會在 UTXO 索引中查找該條目,確保它存在並且正在被有效使用。
我會解密該塊以讀取它嗎?
區塊未加密,但您必須解析相關區塊才能獲取相關交易數據。
在實際實踐中是否曾經這樣做過,這樣做是否昂貴且耗時?
是的,這是由每個節點針對每個事務/塊完成的。檢查單個交易並不是一個計算成本高昂的過程,但要考慮全節點必須計算的驗證總和才能與網路同步。為了維持一個健壯和分散的網路(這是網路屬性的組成部分),執行節點的總資源需求保持相對較低是很重要的,以確保足夠數量的節點能夠保持線上。