Bitcoin QT add address
I noticed this looking at my last transactions. It appears that Bitcoin-QT secretly siphoned off $220 worth of Bitcoin from transactions I made last month. Here is what the wallet software claims:
Another thing to notice is that BlockChain.info sees only 5 transactions, not the 7 reported by the Bitcoin-QT software on my desktop. This requires some investigation. The following are the 7 transactions reported by Bitcoin-QT, and a link to the transaction ID on the Blockchain.info site:
- 2014-01-23 - 0.10001000 -
- 2014-01-11 - 0.05187626 -
- 2013-06-04 - 0.83311000 -
- 2013-05-30 - 0.01050000 -
- 2013-05-30 - 0.00550000 -
- 2013-01-21 - 0.30832200 -
This proves that indeed Bitcoin-QT is siphoning off money into secret accounts when you do transactions, but these are accounts in your “wallet”, which it may then use later to make payments.
So why does the Bitcoin-QT wallet mix addresses this way? Maybe they think it’s good for anonymization? It isn’t — it’s quite easy to see the chain of payments in the blockchain.
For whatever reason they are doing this, it’s a bad idea. It means I’m tied to their software. In theory, your “wallet” is just your “private key”, which could be ported anywhere. This nonsense makes your wallet a complex entity, tying you to this one software. In order to extract your money from this wallet and put it into another wallet, you can’t simply transfer the private keys, but instead have to put a transaction in the blockchain to a new address.
Update: Apparently, this is a “change” address, and is a feature in the Bitcoin protocol rather than Bitcoin-QT.
The protocol doesn’t maintain a running balance for your address. Instead, each transaction forms it’s own chain. When you spend coins, it has to chain the outgoing transaction based on previous incoming transactions. Moreover, if those incoming transactions add up to more than the outgoing transaction (which is almost always the case), it’s going to have left over “change”. It’s got to stuff that change into another transaction somewhere. Hence, it create an internal address to send that money to.