Transactions

輸出地址與其在特定交易中的價值之間的關係是什麼?

  • June 2, 2019

幾天前,我編寫了一個程序來提取輸出地址及其在範例比特幣 pcap 的 tx 消息中的值。提取的地址都是有效的,我們可以在區塊瀏覽器中找到它們。

之後,為了測試,我將一個特定值從一個錢包發送到另一個錢包,並在此傳輸過程中擷取所有輸入/輸出數據包。

當我用這個範例流量測試我的程序時,會生成一些地址和值,其中一個地址是我自己的地址,它的值與我傳輸的值相同,但會生成一些其他地址,它們都是有效地址和有效值但我不知道它們的價值。

我猜這些值是 UTXO,但我怎麼能確定呢?此外,我看到我在錢包中發送的相同值和相同地址,在具有不同源和目標 IP 地址的多個數據包中。例如,我將 A 比特幣從一個錢包發送到另一個錢包,然後將 B 比特幣發送到

創建比特幣交易時,未使用的交易輸出(UTXO)被用於交易的輸入。您的錢包將根據需要使用盡可能多的 UTXO(因此創建盡可能多的輸入)來實現您嘗試在交易中發送的價值。

UTXO 必須完全用完,因此輸入總和所獲得的總價值很可能會大於您想要轉移的金額。這就是變更輸出發揮作用的地方(您獲得的額外輸出)。為了避免向目標地址 ( addr_dst) 發送比您想要的更多的值,輸入的總和 ( vi) 與要發送的值( ) 之間的差vo被發送到更改地址 ( addr_chng),即:

vo - fee被發送到addr_dst

vi - vo - fee被發送到addr_chng

該更改地址通常歸您所有。

比特幣交易不會從地址支出,地址也沒有餘額

每筆交易都有一個或多個輸入和一個或多個輸出

輸出是地址和金額

輸入是指向它正在花費的輸出的引用指針 - 引用是單個輸出的唯一標識符:txID 和輸出編號(例如 0、1、2、3)

尚未花費的輸出是硬幣

要花費硬幣,請使用指向該硬幣的輸入創建交易

比特幣沒有部分花費

一枚硬幣只能完全

使用 一枚硬幣只能使用一次

我將特定值從一個錢包發送到另一個錢包

您花費了一個或多個硬幣。這些硬幣的價值大於您需要支付的金額。您的交易有 2 個輸出(新幣)。輸出之一是您發送的地址和金額。另一個輸出是您輸入的硬幣與您花費的金額之間的差額 - 稱為“零錢”。更改地址是您的地址。零錢屬於你,用於未來的交易

  • 為簡化起見,此解釋省略了交易費用。另一個答案更完整,因為它提到了費用

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