encrypt public wallet data #9844

issue praxeology-guy opened this issue on February 23, 2017
  1. praxeology-guy commented at 11:17 PM on February 23, 2017: none

    Describe the issue

    People want to backup their wallet at insecure locations. bitcoin core currently does not encypt public key/transaction history in the wallet. People have to use an external program such as 7-zip to encrypt the public key data.

    Expected behaviour

    Two options:

    1. Create an extra feature where a password is required to even open the public data part of the wallet. When this feature is activated, password is required to open the wallet on bitcoin client startup. This could be implemented to also decrypt the private keys of the wallet, so that no further password entry is required to spend. Another decision would be whether the password should be different or the same to temporarily decrypt the private keys.
    2. Add an "export encrypted wallet" menu option. User clicks this and a dialog prompts the user for where to save and then a password.

    Actual behaviour

    Bitcoin core does not currently encrypt public data in the wallet.

    What version of bitcoin-core are you using?

    0.13.2

  2. laanwj added the label Feature on Feb 24, 2017
  3. laanwj commented at 12:54 PM on February 24, 2017: member

    IMO it is preferable to simply use an external tool for this. Any disk encryption or file encryption tool will do, and is better supported too. No need to roll every single feature into bitcoin core.

    The "encrypt private keys on disk and in memory unless needed" feature exists because that is functionality that can't be offered by an external tool.

  4. praxeology-guy commented at 2:58 AM on February 25, 2017: none

    OK, here is a different use case: some may want their wallet on a USB drive, but all other node data stored on disk. And they want their wallet data on their USB drive fully encrypted, incase they lose it somewhere they don't want people to know their transaction history and balance. It would be much easier if the client could change the loaded wallet after its been started, by finding the wallet in a file explorer popup... and the file was fully encrypted on USB drive.

    I know I'm asking for a lot now... imo the client should be able to open and close wallets, not just specify wallet file on startup via command line. Are you trying to make something easy for everyone to use? Or just for software engineers?

  5. laanwj commented at 9:25 AM on February 25, 2017: member

    Multiwallet support is in the pipeline, although initially all the wallets will need to be in the same database environment (directory).

  6. Sjors commented at 3:20 PM on March 16, 2018: member

    @praxeology-guy macOS makes encrypting USB drives nearly trivial (stores password in keychain), not sure about other OS's.

  7. andronoob commented at 3:13 PM on November 9, 2019: none

    macOS makes encrypting USB drives nearly trivial (stores password in keychain), not sure about other OS's.

    BitLocker is not available for "Home" SKUs of Windows.

    EFS requires the drive to be formatted into NTFS, and, EFS is well known for its backfires - countless users had lost access to their EFS-encrypted files because they didn't notice (they probably didn't even understand at all!) the importance of backuping the private key.

  8. laanwj commented at 1:19 PM on November 10, 2019: member

    countless users had lost access to their EFS-encrypted files because they didn't notice the importance of backuping the private key.

    This is the same for bitcoin's own wallet encryption. I sometimes get sad at the "help me I've lost my private key can you help recover it" in my mailbox. (I had an issue open for this, once, #1666)

  9. Fonta1n3 commented at 3:30 AM on April 17, 2020: none

    I was going to raise another issue but this one is very similar but with a very different motivation:

    Is your feature request related to a problem? Please describe.

    I have built a few apps on top of Bitcoin Core Fully Noded and FullyNoded 2. In the apps users have the ability to connect to a node via a QR code which is essentially a tor v3 hidden service controlling rpc port that conforms to http protocol for rpc auth.

    This makes it incredibly easy for users to connect to nodes via QR scanning. This makes it an ideal way to share your node with others.

    FullyNoded 2 uses the nodes wallets in a watch-only capacity only so it is not possible to spend from the wallets however if you share your node with someone else they can obviously have full access and see your balances, complete and utter loss of privacy.

    Describe the solution you'd like An obvious solution to this would be the ability to utilize bitcoin-cli encryptwallet for public keys and private keys so that a user is prompted for a decrytion password for any operation to do with public keys. This way you can share a node with watch-only wallets but maintain privacy via a strong secondary encryption password.

  10. MarcoFalke commented at 7:22 PM on May 8, 2020: member

    The feature request didn't seem to attract much attention in the past. Also, the issue seems not important enough right now to keep it sitting around idle in the list of open issues.

    Closing due to lack of interest. Pull requests with improvements are always welcome.

  11. MarcoFalke closed this on May 8, 2020

  12. DrahtBot locked this on Feb 15, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-02 12:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me