Is there any problems at all if I just keep the legacy format?
achow101 mentioned legacy wallet support will be dropped on Bitcoin Core 27.0[1]. If you decide to use that version in future, you must convert legacy wallet to descriptor wallet.
Also this always sounded more secure to me even if you required to make backups each time you generated new addresses to keep them:
The original Bitcoin Core wallet was a collection of unrelated private keys.
I don't see how it's more secure unless you assume master private key alone could be brute-forced or stolen.
[1]
https://bitcointalk.org/index.php?topic=5469585.msg62962204#msg62962204I see a problem with this:
This is one of the most noticeable differences. With descriptor wallets, you cannot export the private key for one address. This is because a child private key combined with the parent public key can be used to compute the parent private key (and hence all other child private keys). This is a risk inherent in BIP 32's unhardened derivation. As such, descriptor wallets disallow the export of child private keys in order to mitigate the risk of accidentally exposing the parent private key.
But you shouldn't be exporting individual private keys anyways. The wallet does not use just one private key, so having an individual child private key is really not that useful.
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.
--snip--
I see a problem with this:
This is one of the most noticeable differences. With descriptor wallets, you cannot export the private key for one address. This is because a child private key combined with the parent public key can be used to compute the parent private key (and hence all other child private keys). This is a risk inherent in BIP 32's unhardened derivation. As such, descriptor wallets disallow the export of child private keys in order to mitigate the risk of accidentally exposing the parent private key.
But you shouldn't be exporting individual private keys anyways. The wallet does not use just one private key, so having an individual child private key is really not that useful.
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.
I get your point. But importing Bitcoin private keys to another device/wallet usually isn't recommended. Just create new wallet on your phone and send some Bitcoin to it.
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
If you had a wallet.dat that was never updated to the new format, and wanted to move to the 25.0 version, does it require any special steps or anything?
The last version I used was around 23.0. I haven't updated since then. I reckon at some point there was some sort of an update on the wallet format that was performed automatically and you didn't have to do anything, not sure if around 0.15 era when segwit was introduced, so im assuming that was applied on the wallet file, but now with the descriptors thing, I've seen some people discussing doing some additional steps. Im old fashioned and I haven't even locked at what the ordinals thing are yet. I use legacy addresses, but had to update because some people request bech32 addresses. As far as I can use Coin Control and generate legacy and bech32 addresses, I would be ok, but im assuming it's best to update for security reasons as bugs get updated. I just don't want to screw up an old wallet in the process. Of course I have backups before any of this is done, but I would like to know if any additional steps are required and why.
If it is a non-HD wallet, upgrade it with -upgradewallet (introduced in 0.17+, I believe).
Then use -migratewallet in 0.25 to upgrade to the descriptor wallet.
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]