You are here. See how this question connects to other ideas.
Select a node to open its page · Expand to read within the map
One question
Bitcoin UTXOs: where change comes from
Follow one output through a payment and its change.
- Old outputSpends→
- PaymentCreates→
- Payment + change
A Bitcoin payment spends entire unspent transaction outputs (UTXOs), then creates new outputs. Your wallet's displayed balance is an aggregation of outputs it can spend, rather than a single balance field updated in place.
Follow the change
A satoshi is a unit of bitcoin; 100,000,000 satoshis equal 1 BTC. Consider an illustrative input of 100,000 satoshis. A transaction can create a 60,000-satoshi payment output and a 39,000-satoshi change output. The remaining 1,000 satoshis are the transaction fee. These are arithmetic examples, not a recommended fee.
The input references an earlier transaction and its output index. Its spending evidence must satisfy that output's conditions. After acceptance into the chain, the old output is spent; the payment and change are separate new outputs.
What a wallet must track
A payment application must distinguish selecting spendable inputs from choosing the recipient. Losing track of change can produce a misleading balance. Compare this with Ethereum's account model and ArcBlock accounts: the same word “balance” can hide different state models.
Sources and further reading
A related idea in ArcBlock
ArcBlock’s Multi Input/Output transfer draws inspiration from UTXO transactions: one operation can describe several inputs and outputs. Its documented TransferV3Tx entries identify owners, token amounts and assets, rather than Bitcoin’s references to previous outputs. The resemblance is in organizing multiple contributions and destinations, not in using the same ledger model.
Check your understanding
Is change the unused part of the old output?
It is a new output created by the spending transaction.
Continue along a learning path
- Understand Bitcoin through a paymentStep 2 of 6