Address-Generation

確定變更地址

  • August 14, 2022

希望能更清楚地了解變更地址是如何在這里工作的。在所附範例中,是否可以 100% 確定地確定找零地址?是否存在可能是第一個的潛在場景,以及可能是第二個的潛在場景(不知道有關誰發送它的更多細節,他們使用的錢包等)。我看到有些人說你不能確定,但在大多數情況下,這似乎相當明顯(例如,它是第二小的可能性是壓倒性的)謝謝!

https://www.blockchain.com/btc/tx/90cb1a71128bda33b00d9008b08ec6cfd3ea8f9868753e038a8b719c6b97f9c1

在所附範例中,是否可以 100% 確定地確定找零地址?

不。

是否存在可能是第一個的潛在場景,以及可能是第二個的潛在場景(不知道有關誰發送它的更多細節,他們使用的錢包等)。

是的。

有很多啟發式方法可以用來確定哪個輸出是變化輸出。然而,錢包也有很多方法可以解決這個問題。如果沒有創建交易的錢包,就不可能 100% 確定哪個是找零地址。

(例如,它是第二小的可能性是壓倒性的)

在您的範例中,您使用了所謂的不必要的輸入啟發式方法。這種啟發式方法依賴於假設錢包不會包含額外的輸入來進行支付,而較少的輸入可以覆蓋。因為您的範例中的第二個輸出小於任何一個輸入,如果它是付款,那麼交易有不必要的輸入,因此輸出很可能不是付款。

但錢包開發人員知道,這是一種用於確定變化的啟發式方法。所以一些錢包實際上完全按照這個啟發式假設是錯誤的。這樣的錢包有時會產生大於支付金額的找零輸出。這打破了啟發式。

還有許多其他技術可用於確定哪個輸出是變化的,但每個啟發式都依賴於錢包開發人員也可以破壞的假設。

在所附範例中,是否可以 100% 確定地確定找零地址?

不會。除非交易將找零發回輸入地址,否則您永遠無法 100% 確定找零輸出是什麼。有一些啟發式方法可以建議哪個輸出更有可能,但錢包開發人員知道這些啟發式方法,並且可以積極地反對它們。

在您的具體範例中,確定更改輸出的一種啟發式方法是查看腳本類型。該交易花費兩個 P2WPKH 輸入並創建一個 P2WPKH 輸出和一個 P2SH 輸出。由於錢包通常只使用一種腳本類型,這表明 P2SH 輸出屬於接收者。但同樣,一些錢包通過將零錢隨機發送到不同的腳本類型來打破這種啟發式。

還有不必要的輸入啟發式,在Andrew Chow 的回答中進行了討論。

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