Last updated: May 2024 / 843445 o'block
Many Bitcoin wallets, in order to keep things simple for you, don't show you many details about your Bitcoin transactions. But if, after a Bitcoin payment, you look up the transaction on a blockchain explorer(such as Mempool.space) you may notice that although you paid one person, you have two outputs. Some of your sats, in addition to the address you meant to send to, have been sent to an unknown address. No reason to worry - that is likely your own address, also known as a change address. Your wallet created it for you on the fly and it will have the private keys for it.
When you make a payment to someone, the transaction will usually have two outputs:
But why not just send the specified amount and keep the rest? Because the way Bitcoin protocol works,
when a UTXO is spent, it must be spent in full. This really means that if your UTXO (or sum of UTXOs chosen to make the payment with) is larger than the amount you wish to pay, the difference will have to be stored as another output, a new UTXO in your own wallet.
Now, could this change be sent back to the original address? Yes, sure. However, it is usually better to use a fresh address for each new transaction or change output (more on this below), and that's why your wallet will generate a new change address for each payment where the amount stored in your UTXO (or UTXOs) being used for the payment is larger than the amount you wish to pay.
For instance, if you have 100 000 satoshi and want to pay 70 000 sats, and miner's fee is 5000 sats, you spend your entire 100 000 satoshi UTXO, with one output going out as payment to your recipient's address, and another output of 25 000 satoshi (100 000 - 70 000 - 5 000) now a new UTXO in an address controlled by your wallet.
There is no technical reason why you couldn't use a single Bitcoin address for all your needs - but you get nothing from that apart from simplicity, and there is a significant downside: it hurts your and privacy of anyone who transacts with you. The Bitcoin network doesn't log your identity on the blockchain, but the addresses and amounts of bitcoin in them are all publicly visible and if, by paying someone or doing a KYC procedure on an exchange, you allow an address to be associated with you, then anyone can look up how much bitcoin you have and how much you spend and when. Using a separate address for each transaction ensures it's more difficult to keep track of which addresses you control and which belong to someone else.
Graphical abstract: for when you just need a quick overview or reminder - same stuff as above, just all in one image.