Hi people,
Just wondering if someone could explain to me how bitcoin change works.
So far I understand that if I want to say for e.g send 5 BTC from my personal wallet to my exchange wallet, and I in total have 9 bitcoins, the system sends 9 bitcoins out, and in returns gives back 4 bitcoins in change......and this change goes to a new bitcoin address? Does this not mean that although I have created offline storage wallets for my BTC (which is online when I want to send BTC), I now need to update my offline wallets with the new bitcoin address? So I need to go through all my offline USB's and paper wallet to update them? I think I have misunderstood this, as this seems really tedious.
What about receiving BTC? Say I just bought 10 BTC from an exchange and want send 5 BTC to an offline address, does the new 5 BTC that I get back go to a new address and therefore new private key? Why does it not just go back to the same address?
Forgive my retardedness, thanks.
Address reuse potentially decreases security in the event of something like a bad random number generation in the wallet (which happened on Android a while ago), though there's no technical reason you can't send change back to the same address, and I sometimes do by setting the change address with coin control. Bitcoin Core creates 100 change addresses by default which are transparent to the user, and generates more when they run out. This means that offline wallet backups need to be updated every once in a while, to make sure you don't lose any of your private keys. Some wallets such as Electrum are deterministic, and generate all their change addresses from a seed instead of randomly, so they can be regenerated from an initial backup of the seed.