Transactions

當您需要驗證交易是否在區塊中時

  • February 18, 2019

所以到這里之後,我已經忘記了為什麼你甚至想要驗證一個交易是否在一個區塊中,以及它是如何工作的。想知道是否有人可以解釋

  1. 在什麼情況下你想要驗證一個交易是在一個區塊中。
  2. 你如何找到交易可能所在的區塊。

該連結在這裡說:

例如,考慮一個 SPV 節點,該節點對其錢包中包含的地址的收款感興趣。SPV 節點將在其與對等方的連接上建立一個布隆過濾器(參見 [bloom_filters]),以將收到的交易限制為僅包含感興趣地址的交易。當對等點看到與布隆過濾器匹配的事務時,它將使用 merkleblock 消息發送該塊。merkleblock 消息包含塊頭以及將感興趣的交易連結到塊中的 merkle 根的 merkle 路徑。SPV 節點可以使用這個 merkle 路徑將交易連接到區塊,並驗證交易是否包含在區塊中。SPV 節點還使用區塊頭將區塊連結到區塊鏈的其餘部分。這兩個環節的結合,在交易和區塊之間,並在區塊和區塊鏈之間,證明交易記錄在區塊鏈中。總而言之,SPV 節點將收到不到一千字節的塊頭和默克爾路徑數據,該數據量比完整塊少一千多倍(目前約為 1 兆字節)。

我還是不明白為什麼你需要驗證交易是否在區塊中,出現的一些問題是:

  1. 特定塊與您的相關性。即使您驗證它是某個區塊的一部分,我也不明白您為什麼關心它來自區塊。
  2. 所以你證明它記錄在區塊鏈中。我不明白這意味著它是有效的。

所有這些資訊都與輕錢包的操作相關,輕錢包不會完全驗證區塊鏈,而是驗證最長的區塊頭鏈,以及與輕錢包相關的任何交易。

在什麼情況下你想要驗證一個交易是在一個區塊中。

簡單地說:確保您發送、接收或以其他方式感興趣的付款已包含在區塊鏈記錄中。如果有人付給你一大筆比特幣,你可能想確定這筆付款確實是合法的!

你如何找到交易可能所在的區塊。

您從 Mastering Bitcoin 中引用的文本有答案:全節點對等點將使用您的布隆過濾器為您提供與您的錢包相關的交易資訊。

特定塊與您的相關性。即使您驗證它是某個區塊的一部分,我也不明白您為什麼關心它來自該區塊。

為了驗證交易是否包含在內,您需要知道它在哪個區塊中。這將允許您的錢包計算加密證明(使用標頭中的 merkle 根),以驗證交易是否發生在以信任最小化的方式建立網路。

如果不知道您需要檢查加密證明的特定塊,則無法類似地知道交易是否包含在區塊鏈記錄中。

所以你證明它記錄在區塊鏈中。我不明白這意味著它是有效的。

只有有效的交易才能記錄在區塊鏈歷史中,但作為輕錢包,您相信全節點網路正在驗證所有區塊和交易,以確保鏈中不包含無效數據。只要全節點都在做他們的工作,無效的交易就不能包含在鏈中。任何試圖在區塊中包含無效交易的礦工都會看到該區塊因無效而被網路節點丟棄。

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