Spv
將不完整的資訊傳遞給 SPV 節點
我想知道 SPV 如何處理以下情況:
- 一筆交易已被某個區塊
X
和資金地址確認y
。- 在稍後的某個區塊,交易的輸出再次被花費
- SPV 節點查詢餘額
y
,全節點對等方返回答案以及塊的默克爾證明X
。- 但是..答案並沒有給你最新的回應,因為
y
資金在最近的一個區塊中被耗盡了……我知道一些想法,比如 UTXO 承諾,但我不確定它們是否曾被合併到比特幣中。
那麼,這個問題解決了嗎?或者也許沒有人傾向於它,因為它被認為不是那麼糟糕?
這是一個已知的缺點。SPV 協議不能防止遺漏攻擊。
SPV 錢包可以請求證明給定 tx 存在於給定塊中,並且給定塊是給定鏈的一部分。但是,如果不提供每個區塊的完整區塊數據,就無法證明該節點沒有遺漏錢包想要知道的交易,此時您基本上是一個完整節點。
錢包通過連接多個節點來避免這種情況——只要該連接池中有一個誠實節點,錢包就會收到最新資訊。