So, if you’ve got a wallet.dat file that’s stuck in the old format and you wanna upgrade to version 25.0, do you need to do anything special?
Last I used it was around version 23.0, and I haven’t updated since. I think there was a wallet format update a while back that happened automatically, maybe around the 0.15 version when segwit came into play. I guess that change got applied to the wallet file, but now with these descriptors popping up, I’ve seen some folks talking about needing to take extra steps. Honestly, I’m kinda behind the times and haven’t even checked out what ordinals are yet. I mainly use legacy addresses, but I had to update a bit since some people ask for bech32 addresses. As long as I can manage Coin Control and create both legacy and bech32 addresses, I should be fine. But I’m guessing it’s better to update for security since bugs get fixed. Just worried about messing up my old wallet during the process. I’ve got backups ready, but I’d like to know if there’s anything else I need to do and why.
Tips for using a 2013 wallet with the latest versions
10 replies 259 views
Upgrading from 23.0 to 25.0 shouldnt require any special steps. Just make sure that you backup ur wallet.dat before these upgrades. You always want to be on the safe side.
Descriptor wallets were already supported with the update to 0.21.0 in 2020. There is a very informative article from @achow101 where he mentioned the benefits.
If you want to use this new feature, you might need to create a new wallet and transfer your funds to it. For basic operations your old wallet format should still work fine and requires no changes.
The upgrade to 25.0 of course brings general improvements in functionality and security and is therefore certainly not a bad idea.
I would always recommend reading the release notes of the new version to always be on the safe side. This knowledge, combined with a current backup of wallet.dat, should make your last doubts fade away.
It was 0.17 and it seems it doesn't work or poses some problem when the wallet is encrypted:
https://github.com/bitcoin/bitcoin/issues/14422
I would honeslty pass on fiddling with the wallet file unless 100% necessary. Is there any problems at all if I just keep the legacy format? as far as I know, the only issue one would encounter was that there is a limit of addresses you can generate in non-HD wallets before you needed to backup:
If you were to generate 101 addresses, what happens to address 101 in practice?
Also this always sounded more secure to me even if you required to make backups each time you generated new addresses to keep them:
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#4Apr 6, 2020, 02:53 AM
You can always work on a backup rather than the original wallet.dat file.
In the future versions, yes.
In not-so-distant versions of Bitcoin Core, you wont be able to load old bdb wallet.dat files without upgrading it first into sqlite.
Here's the proposed timeline with checklist of the implemented parts: https://github.com/bitcoin/bitcoin/issues/20160
I see a problem with this:
If you want to export a private key that contains a reasonable amount to carry on a phone and import it into the phones Electrum wallet or whatever, then with the new format you wouldn't be able to do this, because apparently you will not be able to export individual private keys due the new format.
What I've read is that it makes watch only wallet creation much easier.
Also can you finally have a seed that generates the wallet safely like on Electrum if on a worst case scenario you lose your wallet file or that's not possible? From what I read this wasn't really secure but I only use Electrum for phone with small amounts anyway.
Look at the fees, not really great to waste money on fees when you are looking at current rates, and we aren't talking settling big amounts, but small amounts to use on a phone number, so it's really not worth it. Importing and exporting private keys could be reasonable if were you hold your keys is an airgapped device, and you could use a QR code reader so nothing is leaked, and we are talking private keys that don't hold some huge amount so it shouldn't be a problem. I'll need to evaluate what is the best way. At least I've seen an achow interview where he says they will keep support for old wallets for at least 3 years, beyond that you'll have to convert the format
So could someone confirm that this is all one has to do? I would prefer to avoid mistake here. Im going to keep using the old wallet for as long as possible until I know exactly what im doing. I've never had any problems, and I make backups all the time, so the lack of HD was never an issue (because of the limit o addresses being saved thing). Im also not going to be using any features beside simple transactions.
And I do not want to move any funds, so sending tx's to myself in other addresses isn't an option.
[moderator's note: consecutive posts merged]
Recent versions of Bitcoin Core maintain backwards compatibility, you can just open the wallet with them and it should all work. There are a few background upgrades that will occur but these are all backwards compatible (you'd be able to downgrade with no ill effect). If you do not use upgradewallet or migratewallet, then no backwards incompatible upgrades will occur. Otherwise, your wallet should still open and work as you expect it to.
Yeah but I want to know what to do when Bitcoin Core stops wanting to open good ol 2013 wallets. Do I just run these 2 by then and we are good?
There will never be a point where Bitcoin Core refuses to open an older wallet without any additional information. The plan for removing support for legacy wallets includes a migration step that will still work even after the removal has been completed. This migration will remain in Bitcoin Core probably for the rest of time, so if you have an old wallet and open it in a future version, you would get a message informing you to perform the migration so that it can open the wallet.
Sorry, I have a small OT question about this:
I thought all wallets were HD wallets. But I think I misunderstood something. Legacy wallets newly created with Bitcoin Core are HD wallets, but the old ones from 10 years ago are/were not, right?
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#10Apr 9, 2020, 06:07 AM
Seems on-topic to me.
Yes, but the actual timeline is about 7years and 2months ago.
HD Key Derivation is implemented in Bitcoin Core version 0.13.0. (November 2, 2016)
Here's the link to version 0.13.0 release notes: github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.13.0.md
Before hierarchical deterministic keystores were introduced to Bitcoin Core (to my knowledge called BitcoinGUI earlier, don't remember when the name was changed to Bitcoin Core) the legacy keystore contained independant random private keys. Such wallets with a keystore of random independant private keys needed to be backed up regularly. And it was possible to loose keys and funds under certain conditions when you restored an old backup.
Bad things happened under the following circumstances:
The wallet created new fresh private keys in batches when needed, i.e. when the number of unused private keys were exhausted, e.g. in batch sizes of 100 keys (don't remember the exact batch size). Suppose your recent wallet backup contains a keystore size of 500 keys with only a marginal number of unused keys left (you don't see that). You make a few transactions which exhaust the number of unused keys and this triggers the creation of a new batch of fresh keys (keystore size now 600), you still make a few transactions which transfer funds as change to addresses of those newly generated keys (or you consolidate your UTXOs to such "new and fresh" addresses). For whatever reason you still don't have a backup of your wallet with the bigger replenished keystore.
Now something bad happens which forces you to restore from your most recent wallet backup file (which has a smaller keystore size!). This leads to the loss of the most recent new keys batch and subsequently in this case to a loss of funds. In the worst case you loose all your coins in this wallet!
This unwanted situation was the main problem of a keystore of independant random keys. In a HD wallet all present and future keys are deterministic and recreatable from the HD seed key. With a HD wallet it doesn't matter which wallet backup file you restore, you can't loose keys. You may only loose some commentary metadata of addresses/transactions, but nether any keys or any past transactions (a blockchain rescan may be needed after a restore of a backup wallet file).
Related topics
- Using two different Bitcoin versions without messing up blockchain data 3
- Using Electrum to Transfer from BRD Wallet with HPS Address 8
- Recovering a Bitcoin wallet and address 8
- Creating a list of non-zero wallets and their balances using Python 4
- CipherSeed: A Comprehensive Guide to Super-Secure Crypto Wallet Backups 5
- What derivation path does mm-gen wallet use? 3