nvk / walletsrecovery.org

Information about wallet defaults for external recovery
https://walletsrecovery.org/
115 stars 96 forks source link

Old (not-yet-upgraded) Bitcoin Core wallet.dat doesn't have a separate key chain for change address #130

Open andronoob opened 3 years ago

andronoob commented 3 years ago

Related commit (Bitcoin Core issue No.9294): https://github.com/bitcoin/bitcoin/commit/f34cdcbd806d3e7c9d5dbac2a201755a4cc9828b

I didn't see such feature noticeably described in the release note of Bitcoin Core 0.15.0, it was just listed in the "wallet" section as a trivial commit history entry: https://bitcoincore.org/en/releases/0.15.0/

In the release note of Bitcoin Core 0.17.0, the -upgradewallet feature is described as being able to upgrade an old "non-split" wallet.dat into a new "split" one: https://bitcoincore.org/en/releases/0.17.0/

By the way, it worth noting that Bitcoin Core uses hardened-derivation on each private keys (addresses, either receiving or change), which might be incompatible with other wallets (like Electrum). However, tools like Ian Coleman's BIP39 Mnemonic Code Converter is compatible with this.

Besides, as we all know, Bitcoin Core currently doesn't support any mnemonic (including BIP39) at all. It's also tricky to deal with wallet.dat (which is a Berkeley db4.8 database) without Bitcoin Core (although Bitcoin Core has always supported such db4.8 wallet.dat).

Also, although dumpwallet RPC command of Bitcoin Core can generate a text file of contents of wallet.dat, IIRC it won't include old (no longer used) HD seeds - there could be more than one HD seed inside wallet.dat actually. (related issue discussion thread: https://github.com/bitcoin/bitcoin/issues/17748#issuecomment-567560704 )

DISCLAIMER: although I have tried my best to make the info above accurate, I can't guarantee its accuracy.

nvk commented 3 years ago

That's another instance of a possible need for a separate document like Casa and Electrum.