How to avoid losing Bitcoins when using Bitcoin Core

Bitcoin Core is by far the best Bitcoin wallet, and a necessity for anyone planning on using significant amounts of Bitcoin. Most Bitcoin wallets store your private keys on their server, so anyone with access to the server could take your Bitcoins at any time. This is akin to giving cash to a random anonymous person rather than putting it in a bank. There are hybrid wallets like Multibit and Electrum which don’t need to store your private keys on their server to work, but they still have access to your private keys and it only takes 1 bad employee or a hacker to steal your funds. Only Bitcoin Core gives you complete control of your private keys, with no one else able to touch them as long as your password is strong. Bitcoin Core is completely self-sufficient since it stores the data from every transaction in Bitcoin’s history; it only requires an internet connection so it can broadcast your transactions and receive the latest Bitcoin transaction data. Additionally running Bitcoin Core strengthens and secures the Bitcoin network by increasing data transfer speed and verifying all new Bitcoin transactions against Bitcoin’s rules, preventing invalid transactions.

In order to ensure full access to your Bitcoins if your computer breaks or its memory is corrupted you must store the private keys in an external storage device, which is easily done by clicking on File —> Backup wallet and downloading the wallet.dat file. After you fix or replace your computer you can import this wallet into Bitcoin Core to recover your Bitcoins.

Most Bitcoin users rarely backup their wallet, due to a common misconception that you can restore your wallet with a wallet.dat file from any point in time. This can result in losing all of your Bitcoins when you restore your wallet due to the way Bitcoin Core handles ‘change’ transactions. When sending Bitcoin to someone else protocol requires that any inputs used in the transaction must be completely spent. For example if you receive 2 Bitcoins and then send 0.5 Bitcoins to someone else, then 1.5 Bitcoins are sent as change. This is a similar concept to using a $20 bill to buy $5 of goods, you cannot rip off a piece of the $20 bill to pay, instead you send the full amount to the cashier and then they send back $15 of change. Bitcoin Core sends the change to a new address which it creates, and stores the private keys in your wallet.dat file so you control the new address. The available balance in your Bitcoin Core wallet is the sum of all the addresses you control, rather than the amount of Bitcoins actually sitting in your main wallet address. It would be difficult for an outside observer to determine that you own the newly generated change addresses, greatly increasing anonymity of transactions. It is possible to simply send all change to your normal wallet address to avoid creating new wallets, but Bitcoin Core creates new addresses for change by default and few people ever modify it.

If you restore Bitcoin Core with a wallet.dat file created prior to your most recent transactions it is probable that the wallet.dat won’t contain the private keys for newly generated change addresses, so you will see zero Bitcoins in your wallet even if you had Bitcoins prior to your computer crashing. This has confused and enraged many Bitcoin Core users. In order to restore your Bitcoins you must obtain the wallet.dat file from right before your computer broke and import it into Bitcoin Core, which is a relatively easy task as long as your hard drive isn’t broken. Your Bitcoins will sit idle in the change addresses, so even if you get the wallet.dat off your old computer weeks or months later you will recover the previously lost Bitcoins. It is important to have zero Bitcoins in your wallet before you attempt to restore an older wallet.dat, since you will lose access to any change addresses created after your computer crashed.

To summarize, the only way to completely ensure access to your funds in Bitcoin Core when using default settings is to download the wallet.dat file after each Bitcoin transaction you participate in. This would be quite a hassle for active Bitcoin users. It is much easier to direct all change to a specific address that you control, which is easily done in newer versions of Bitcoin Core as seen below. As long as your wallet.dat backup contains the private key for the fixed change address you won’t need to update it ever again, at least in theory. The downside is your transactions will be less anonymous.

Leave a Reply

Your email address will not be published. Required fields are marked *