On zcash official website, making regular backups of the wallet is recommended.

When I use bitcoin, I have a master private key, and all private keys can be generated using the master key. So I can only backup my wallet once.

So what's different in zcash? Why should I backup the wallet regularly?


The BIP32 specification allows a user to derive many keys from a master extended private key, and this master key is derived from a seed (often, a mnemonic phrase). This allows the user to just back up one piece of data (the seed phrase), knowing that they'll be able to use it to derive all subsequent keys in their wallet.

Prior to the implementation of BIP 32, most wallets were a collection of keypairs that were independently generated at random, so one key would bear no relation to the next. In this style of wallet, every time you generate a new address, you need to save a new backup copy that includes the new address. Older backups would not contain the info that allows you to derive the same new address.

I am not extremely familiar with Zcash, but I would guess that not all implementations of their wallet software use a BIP32 style wallet architecture, thus the recommendation for regular backups (similarly, not all bitcoin wallets use BIP32).


Zcash was built on a fork the Bitcoin Core 0.11.2 codebase, which generated (transparent) keys randomly. The Sprout shielded keys were similarly generated randomly. Thus, it is necessary to back up your wallet whenever you use transparent addresses (because Zcash inherited Bitcoin Core's behaviour of using a new transparent address for every change output), or whenever you generate a new shielded address or import a shielded key (which are the only times that new shielded keys are added to the wallet, because shielded address reuse for change outputs leaks no information).

Bitcoin Core added a minimal BIP 32 implementation to their 0.13 release, which is used for new wallets (legacy wallets still generate all keys randomly even after 0.13). Once that is backported to Zcash, transparent addresses will similarly be deterministically generated.

We are currently working on ZIP 32, which will define how to generate shielded keys (for both Sprout and Sapling) deterministically. Once this is finished, support for deterministic shielded addresses can be implemented in Zcash.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.