Hi all,
Had a strange transaction on one of my wallets today that I'm hoping someone can shed some light on.
I sent 0.01BTC from my Bitcoin-core wallet (0.13.2) to my Bittrex online wallet and 0.00950364 BTC turned up as expected (minus the 0.00049636 BTC fee), however blockchain.info now shows my Bitcoin-Core wallet as having withdrawn 0.05220857 BTC which is over five times the 0.01 BTC I sent out. The transactions on my Bitcoin-Core wallet are still a few weeks behind, but it only shows the 0.01BTC being withdrawn.
https://blockchain.info/tx/cf68c7482ee1a92ac31073e3d2cc16b1d23c5f421dd8ea6414d56dfa5dd7f4fdAny ideas where/why the extra was withdrawn from the wallet?
Thanks.
Blockchain.info doesn't know anything about your wallet. All it knows about is addresses. It can't tell with any certainty which addresses belong to which wallets.
What you are seeing is not "strange" at all. It is exactly how bitcoin works, how it was designed to work, how it has always works. You've just never paid close attention to the technical details in the past. Most wallets abstract away those technical details so that you can just think of it like an account, and send and receive value without needing to know how it happens.
Payments that you've received are each tracked separately on the blockchain and are not "merged" simply by sending them to the same address or the same wallet. When a bitcoin transaction is created, the wallet software funds that transaction by choosing from specific payments that you received in the past. It lists these previously received payments as "inputs" supplying value to the transaction.
Then the wallet lists the "outputs", (effectively the addresses that you want to assign the value to and the amount that you want to assign to that address). If the amount that you are sending is less than the amount of value that was provided to the transaction, then any excess value is a "transaction fee" that the miner can assign to himself as part of the block reward when he confirms your transaction.
If you don't want that entire excess amount to ALL go to transaction fees, then the wallet needs to assign the amount that you want to keep to an output in the transaction. The wallet creates a new receiving address. It doesn't bother telling you about the address, since it is only used for sending this excess value back into the wallet, but the wallet software is aware of it and stores the private key along with all the other private keys in the wallet.dat file. The wallet then creates an additional output in the transaction that sends the excess value to that new address. In the future, the wallet will be able to reference that new receive amount when it wants to fund another transaction.
This new address and extra output in the transaction is commonly called a "change address" and "change output", because it's a bit like paying for a $5 item with a $20 bill. In such an analogy, you would get $15 back to you in the form of "change" from the cashier.