Error: wallet encryption is disabled

DEAR DEVS,

please fix this asap - thats ridiculous - especially 4 zcash.

regards

This is not really an error. Zcash developers don’t recommend encryption on the wallet because Zcash also uses encryption for transactions. Encrypting encrypted content can lead to real errors like incorrect balances or crashes.

Best bet is to assume if someone can access your PC you are compromised anyway. I recommend whole disk encryption with a strong password.

2 Likes

Diving in a little deeper: the reason we disabled wallet encryption (or rather, put it behind an experimental feature flag, indicating that it can change incompatibly at any time) is because wallet encryption is incompatible with the Sprout shielded value pool. The way in which you detect spent notes in Sprout is by deriving a nullifier from a received note using the spending key. If the wallet is encrypted, the spending key is inaccessible, so spends can’t be detected. This results in a failure case where the user thinks they have significantly more ZEC in their wallet than they actually have, which is really bad.

We fixed this for the Sapling shielded pool by introducing a “full viewing key” into the cryptographic construction, which in an encrypted wallet can be left unencrypted. However, since Sprout is still supported, we can’t reliably enable wallet encryption for everyone. At some point when we have time, I would like us to conditionally allow wallet encryption for wallets that contain no Sprout addresses, and if the wallet is encrypted, completely disabling all Sprout functionality. We should also take the opportunity to first overhaul the wallet encryption itself to bring it in line with modern standards and best practices.

8 Likes

Maybe … but nobody are able to sign a transaction, spent some funds or dump keys from my btc wallet without the password - even if I leave the pc open.

regards

Thanks for the answer. I still think its an important point and it should be done (in any way) in the near future.

regards

Hello Guys!
It has been almost two years since this answer was posted and I would like to know if it is still valid. I am using Zecwallet FullNode for Windows 10.
What I’ve been reading so far is that If some else has access to my PC and copies the wallet.dat file and restore it to another PC, it would have access to my addresses (z and t) and my funds. So, the only wat to protect this file is encrypting the disk and not using the “experimental” feature encryptwallet to avoid any issue. right?

Hi @freki

Yes, this is still true. However, since sending to Sprout addresses has been disabled, if you just receive ZEC into a Sapling address then you’re fine with encrypting the wallet. The case told by @str4d relates to Sprout shielded pool.

Thanks @tokidoki !
Last question. Do you know if it is possible to use the “encryptwallet” command even if I am using the Zecwallet FullNode for Windows?.

@freki I am sorry but I’m not a Zecwallet Fullnode user nor a Windows user. I only know that there is an option to encrypt wallet in Zecwallet Lite.

However, the best option is still to do a whole disk encryption like @Shawn suggested.

FYI, for long term storage you might want to check ZecPaperWallet and generate keys and addresses from an offline computer. Ledger app with shielded capability has been developed and currently is in testing/review process, should not be too long before release.

1 Like

Thanks, @tokidoki again!

Hello, maybe not talking about encryption, but on the Zecwallet Lite mobile app, a simple pin would be really necessary to send funds, like in Jaxx Liberty: if I lose my phone or it is stolen or if someone has temporary access to my phone, there is no way to protect my Zcash in the wallet, and to prevent anybody to steal the funds ! On the windows app, you have at least a feature called encryption.
So is there not a possibility to just add some password to the Zecwallet Lite mobile app on phones?

Thank you

CC @adityapk00 for the ZecWallet question.