Transactions

發送了一些比特幣後,為什麼我沒有發送全部餘額,但我可以使用零?

  • January 17, 2021

對於我經常使用的一些客戶端(Multibit,Android 的比特幣),我注意到,在我將比特幣發送到一個地址後,儘管可能有幾個比特幣餘額,但我有 0 BTC 可供花費。

仔細查看 Blockchain.info 或 Blockexplorer.com 上的交易細節,我發現客戶在同一筆交易中將我的全部餘額發回給了我自己。

例如,交易前我錢包裡的餘額是 1 BTC。我從我的錢包向地址 C 發送了 0.5 BTC,外加 0.0005 BTC 的交易費用。我應該立即有 0.4995 可用於另一筆交易。但是,客戶端顯示 0 BTC 可用,但餘額為 0.4995 BTC。

當我查看交易時,我看到兩個輸入地址,地址 A 和 B。輸出是 0.5 BTC 到地址 C,我的付款目的地,以及 0.4995 到地址 B。

為什麼我應該有 0.4995 BTC 可用,而我卻有 0 BTC 可用?

在這種情況下,地址 A 和地址 B 都沒有足夠的餘額來支付 0.5 BTC。兩人加起來確實夠了。因此,客戶端足夠聰明地將兩個地址的金額組合在一起以滿足所需的交易金額。

不幸的是,這種組合具有將比特幣作為交易中的“更改”發送給自己的效果。在這種情況下,所有可用餘額在地址 A 和地址 B 之間分配。為了滿足對 C 的付款,將這些餘額合併為“更改”到地址 B。

也可以從數學上考慮。從您控制的帳戶的角度來看,這顯示了平衡。

balance(A) + balance(B) = payment_to(B) + payment_to(C) + transaction_fee(0.0005)

這就是交易。

balance(A) + balance(B) - payment_to(C) - transaction_fee(0.0005) = payment_to(B) 

payment_to(B)就是變化。

不幸的是,由於客戶在允許一個人花費傳入交易之前等待的確認次數,餘額存在但無法花費幾分鐘,或者長達一小時或更長時間。

如果即將發送的交易會造成這種混亂情況,客戶應該通過警告來更好地處理這個問題。

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