Transactions

在兩個使用者之間轉移 BTC 時,網路如何驗證之前的交易?

  • May 4, 2020

在兩個使用者之間轉移 BTC 時,新交易將包含對先前交易的引用。

例如,如果我的使用者 A 希望將 1 BTC 轉移給使用者 B,他將需要總共 1 BTC 的“n”筆交易才能使交易有效。如果這些“n”交易發生在它們之間的很長一段時間(比如 1 年)並且出於某種原因,我覺得絕對有必要驗證這些“n”交易是否確實發生了。

我將如何找到相關的塊?

我會解密該塊以讀取它嗎?在實際實踐中是否曾經這樣做過,這樣做是否昂貴且耗時?

我覺得絕對有必要驗證這些“n”交易確實發生了。我將如何找到相關的塊?

交易消耗輸入並創建輸出(新的“未使用的交易輸出”或 UTXO)。為了使交易有效,每個輸入必須是網路上存在的有效 UTXO。全節點保持所有有效 UTXO 的持續更新索引,它們可以檢查傳入的交易。

交易輸入將通過交易 ID 和輸出索引引用創建它的交易。所以一個完整的節點只會在 UTXO 索引中查找該條目,確保它存在並且正在被有效使用。

我會解密該塊以讀取它嗎?

區塊未加密,但您必須解析相關區塊才能獲取相關交易數據。

在實際實踐中是否曾經這樣做過,這樣做是否昂貴且耗時?

是的,這是由每個節點針對每個事務/塊完成的。檢查單個交易並不是一個計算成本高昂的過程,但要考慮全節點必須計算的驗證總和才能與網路同步。為了維持一個健壯和分散的網路(這是網路屬性的組成部分),執行節點的總資源需求保持相對較低是很重要的,以確保足夠數量的節點能夠保持線上。

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