Bitcoin Change Addresses

I was reading about Change Addresses in Bitcoin transactions and found some explanation in the Trezor Wiki and in the Bitcoin Wiki. I also found an explanation of Change Addresses on BitPay.

So I think I understand what a change address is, what changes are, and that it’s change (money) returning to the sender after a Send transaction if the total amount sent was larger than asked for (just like you’d get back change from the cashier on a $20 bill in a shop, if the item you bought costed less than $20), but it’s still kind of unclear to me why you’d need to send more than is necessesary in a digital transaction.

I understand it has something to do with multiple inputs/outputs in a transaction, but how does this work and why would one send more Satoshies/Bitcoins to someone who’s asking for less? If you could you please give me a practical example I can understand, I’d be very happy. :slight_smile:

Hi Petosiris,

This is due to the UTXO - Unspent Transaction Output concept in Bitcoin. Feel free to read more about it in this topic: What is UTXO?.

1 Like

Hi @kolin,

That article was somewhat clearifying. I now understand that the UTXO model that Bitcoin (among others) uses do not subtract/add on the user’s balance directly but makes an additional transaction that must later be merged into the user’s balance.

But it left some things unexplained, I think. For instance, why someone has to send more than the receiver ask for. I’m a visual guy so I tend to understand things better when they’re visualized. :slight_smile:

Then I found a video on YouTube, which had great explanatory images, such as this one:

… and this example, which shows that the sender’s balance is composed of four earlier transactions to him:

So when the sender want to send something, (s)he has to send/expose all his/hers transactions records to prove (s)he has the amount (s)he want to send. Then the amount is locked and sent to the receiver and the rest is returned to the sender as “change” and put in a Change Address in the sender’s wallet. When a Bitcoin wallet is displayed, it sums up all the individual transactions in the account - contrary to Ethereum and others which don’t use the UTXO model, where the balances of the sender and receiver are updated directly as part of a transaction.

Is this correct?

When the transaction is broadcast to the blockchain, you will only see the inputs that are used and new outputs that are created.

@kolin,

Yeah, only the locked inputs and outputs are viewable, but the whole transaction chain of the sender is exposed and checked, so (s)he cannot spend something twice, right?

I can’t help thinking that this checking of whole transaction chains would make the task of checking increase in time when transactions grow in volume. Is this why the mining difficulty increase with time also?

@Petosiris ,

yes, they must be locked to avoid double spending.

Verifying transaction chains is already beyond our scope and I believe there will be good information on the Internet. What I can say is that this has nothing to do with the difficulty of mining, as it depends on the hash rate that miners put into the network. More computing power to find new blocks means increase in difficulty and vice versa. Mining difficulty can decrease over time. We can see it these days with China mining ban when the hash rate dropped significantly and the difficulty followed.

1 Like