ELI5: What is Bitcoin Change Address?
When explaining a Bitcoin transaction to beginners they always seem to struggle with the concept of change output or change address.
They think when a transaction is sent from a wallet address that holds a certain amount of bitcoin, let's say 10, the transacted amount is simply extracted from the overall balance.
Furthermore, they think this repeats with each consecutive transaction until the balance becomes 0 BTC.
However, nothing is further from the truth.
First, let's explain what happens on the surface when sending a "standard" Bitcoin transaction.
When spending bitcoin output(s) (sending bitcoins from one address to another), often a transaction like this is created.
This particular one consists of 1 input and 2 outputs where the input is a cryptographically signed unspent output of a previous transaction and outputs represent coins' destination.
One, both or none of the outputs may become inputs in the future, depending on whether they become part of another transaction (are spent) or not.
So in the above transaction, 1.13026875 BTC were spent to 2 outputs. We may never be sure, but let's suppose one of them is a receiving address and the other a change address. More about change addresses later.
Looking at the outputs, we can estimate that 1MPGQgXaRbZsJipzptmVc5ep15wMBHe1zb is the receiving one because it was reused numerous times. Which is a very bad practice btw.
Thus, the other one is the change address.
What happened in this transaction is that 0.98244557 BTC were sent as a payment to 1MPGQgXaRbZsJipzptmVc5ep15wMBHe1zb and the "change" of 0.14748814 BTC was returnedto another address in the sender's possession, in this case 1Cm5nTmfEntsqayWFNMu4hBcuKkXbCETc4.
To understand this, we need to know that bitcoins aren't some kind of physical/virtual objects that can be taken from until there's nothing left.
They have to be fully spent (sent elsewhere) instead or the rest of their balance goes towards miners as a transaction fee.
To prevent that from happening a separate internal "account" exists in most Bitcoin wallets. This account holds all change addresses where transaction "leftovers" are sent.
A change address is just a base58check encoding of a hashed representation of a public key that is in pair with a private key.
Whoever holds the corresponding private key can spend the change output same way as he would do with any other output.
Now to the easy part.
Explain Like I'm Five
Let's say there are Alice and Bob.
Alice is hungry and walks into Bob's grocery store.
She gets a bag of apples, a bottle of milk and box of cereals.
When it's time to pay Bob charges her $15.
Alice naturally doesn't have a bill worth of $15. Her wallet only holds two $1 coins, $20 and $50 bills.
She picks up the $20 and hands it over to Bob.
He doesn't rip the bill apart in two pieces (as he would do with a pie) and gives the smaller piece to Alice.
Bob instead takes her $20 bill and gives her $5 bill back as change.
Transaction worth of $20 has taken place where $15 was Alice's purchase to Bob and $5 change back to Alice.
As you can see a Bitcoin transaction is very similar to that made by cash. There are inputs and outputs which often include "change" that is returned back to a sender.
This change can then be used in a totally different transaction same as you would use your cash.
I hope you understand the concept of change addresses now!
Let me know in the comments section below if anything is not clear yet. Also, I'd like to hear your feedback on ELI5s and if you want me to keep posting them.