Spv

SPV(簡單支付驗證)錢包如何了解傳入交易?

  • February 15, 2018

我試圖了解 SPV 的實現。

我閱讀了有關協議規範瘦客戶端安全的 wiki 頁面以及白皮書的第 8 章。

我不明白的是:

假設使用者A有比特幣地址X

使用者A可以執行getheaders並載入所有塊頭,然後擁有所有塊雜湊和時間戳。

那麼:SPV 客戶端如何在X不載入所有區塊(和所有交易)的情況下找到使用者比特幣地址的可能交易?

你是對的,比特幣論文中描述的 SPV 沒有解釋如何在不下載完整塊的情況下發現自己的付款。我的猜測是,Satoshi 要麼計劃稍後開發這個,要麼他假設你只會被告知支付給自己的費用(pay-to-IP,就像現在使用的 pay-to-pubkeyhash 旁邊一樣)。

然而,今天 SPV 節點的實際實現使用稱為布隆過濾器的協議擴展,在BIP 37中進行了描述。他們使用getheaders在錢包的出生時間戳之前獲取塊資訊,然後請求過濾塊。為此,他們向對等方送出描述他們感興趣的地址和交易的布隆過濾器。然後,對等點僅在其送出的塊中包含相關交易,以及它們的 Merkle 路徑,以證明這些交易確實是所述塊的一部分。

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