zcash / wallet

Repo for replacing the zcashd wallet
1 stars 0 forks source link

Provide a wallet upgrade path that moves funds held by legacy keys into a unified account. #6

Open nuttycom opened 1 year ago

nuttycom commented 1 year ago

For historical reasons (to be documented in https://github.com/zcash/zips/issues/675), a zcashd wallet may hold funds in a fashion where the keys that control these funds may not be able to be reproduced via standard BIP 44 derivation from a mnemonic seed. In the interest of making it possible to migrate uses to depending exclusively upon the standard key derivation mechanism, we should provide an API that does the following:

(1) Migrates funds such that they are held by keys that are derived using standard BIP 44 / ZIP 32 derivation. (2) Once a wallet has had its funds migrated, methods such as listaddresses should be default no longer display addresses associated with the legacy-derived keys by default; instead, a special show_legacy_addrs argument should be required in order to reveal such addresses to the user.

daira commented 6 days ago

After zcash/librustzcash#1552, it would be possible to do this as a completely automatic operation. However, it is not blocked by zcash/librustzcash#1552 because technically it is not necessary for the legacy-derived keys to be held by the wallet; they could be provided temporarily.