Json-Rpc

輕量級客戶端如何確保尚未花費輸出?

  • April 27, 2016

證明 UTXO 的創建很簡單:您只需要提供交易數據、Merkle 分支和創建交易的塊。

然後,作為一個全節點,檢查輸出是否還沒有被使用很簡單:你自己跟踪 UTXO,如果它還沒有從你的 UTXO 集中刪除,它仍然是未使用的。

由於輕量級客戶端手頭沒有完整的 UTXO 集,它如何確保輸出仍未使用?我看到 BIP0064 引入了一條getutxo消息,但似乎找不到更多關於它的資訊。這樣的介面還有效嗎?除了輪詢特定 UTXO 的多個不同節點或執行全節點之外,還有其他選擇嗎?


澄清我感興趣的內容:我最近閱讀了論文Sybil-Resistant Pseudonymization and Pseudonym Change without Trusted Thirdparty。提議的系統BitNym通過將假名儲存在交易輸出中來管理假名。在錨定輸出用完之前,假名一直有效。因此,檢查輸出是否仍在 UTXO 集中是有意義的。

目前有115 個左右的節點將回答該getutxos消息。這與呼叫第 3 方 API 一樣是該資訊的來源。這兩個來源的問題在於它們不提供密碼證明。

實際上不可能證明未使用的輸出,原因很簡單,它可能已經在證明產生後立即發現的塊中花費了。

UTXO 承諾的想法是讓礦工在每個區塊中發布整個 UTXO 集的摘要,可以參考該摘要來證明特定的 UTXO 在最近一個未使用的情況下,但您可能也對任何未確認的支出感興趣在那裡漂浮。

讓您的同行嘗試證明某個輸出已被花費可能是一個更好的主意。只有確認才能建立您對收款的信心,但以沖突交易(+ merkle 分支,如果在鏈中找到)形式的支出證明可以立即將您的信心降低到零。

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