Utxo
UTXO全部發送到更改地址?
我讀過這個問題,詢問一個地址中的所有 UTXO 是發送到更改地址還是僅發送到交易中涉及的 UTXO。
作為支出交易的一部分,公開地址被公開。這也是人們建議不要重複使用地址的部分原因。
我的問題是:
- 是所有 UTXO(甚至那些不屬於交易的一部分)都發送到更改地址還是僅發送到交易中涉及的那個?(在連結的問題中並沒有真正回答。)
- 如果只將交易中涉及的那一個發送到找零地址,那不是有安全風險嗎?留在比特幣地址中的剩餘 UTXO 現在已公開其公鑰。
始終由錢包客戶端決定要使用哪些 UTXO。該協議當然不要求同時花費一個地址的所有 UTXO。可以對特定的錢包客戶端進行編碼來執行此操作,但我不知道有什麼。
在這裡您可以看到一個測試網範例。交易
90d042b...
僅花費了 address 中可用的 9 個 UTXO 中的 2 個moooopfhBjQDSJQuCj4aVr6s4b5pFbQin4
。該交易僅使用sendtoaddress
Bitcoin Core 中的普通命令創建,沒有特殊選項。這不是一個重大的安全風險。在一個安全的數字簽名協議中,即使公鑰是已知的,在沒有訪問私鑰的情況下生成一個有效的簽名應該是不可行的。這就是“公開”的意思!據我們所知,ECDSA 是安全的,因此公開公鑰不會損害安全性。
有些人相信計劃有一天可能會在 ECDSA 上發現攻擊。如果是這樣,那麼不透露您的公鑰會有一些優勢。在將新的簽名算法整合到比特幣中後,您可以創建一個交易,將您的硬幣發送到使用新算法的地址。這會洩露你的公鑰,攻擊者可以開始,但假設攻擊的計算量相當大,你希望在攻擊者成功創建將你的硬幣發送給他的交易的偽造簽名之前確認你的交易。
這種方法的權衡是,正如你所注意到的,一旦你想從一個地址花費任何硬幣,你就必須花費所有的 UTXO。這會增加交易的規模,從而使您付出更多的費用。這就是為什麼大多數客戶不這樣做的原因。安全性改進充其量只是理論上的,但成本是真實的。