Skip to content

Proposal: remove wallet upgrade path from basic to deterministic #2342

@schildbach

Description

@schildbach

When HD wallets were introduced in 2013, a semi-automatic and deterministic upgrade path was introduced to get users from a basic wallet (which has individual, random keys) to deterministic wallets. In a nutshell, the seed is derived from the first random key in the wallet.

I propose to remove this upgrade path. Virtually all wallets and its backups should be upgraded by now. I consider these cases:

  • If a wallet isn't upgraded it must be running a stone-old app and probably a stone-old OS. If these users have upgrades available, they simply should upgrade. If not, it's time to buy a new device and upgrade via backup/restore.
  • If an already-upgraded user needs to restore from a non-upgraded backup, they can use an old bitcoinj version (before this change is merged) to do that. Note that Bitcoin Wallet has changed the backup format in May 2014 anyway so this problem is not new.
  • Wallets/KeyChainGroups created using the new-ish createBasic() are blocked from being upgraded to HD anyway. This highlights the idea that the upgrade path was only meant for wallets that already existed when HD was introduced.

Note this proposal does not touch the upgrade path from P2PKH to P2WPKH and any later yet-to-implement upgrades like P2WPKH to P2TR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions