Misleading "Encrypt wallet" GUI process #13245

issue kallerosenbaum opened this issue on May 16, 2018
  1. kallerosenbaum commented at 12:19 PM on May 16, 2018: none

    <!-- This issue tracker is only for technical issues related to Bitcoin Core. General bitcoin questions and/or support requests are best directed to the Bitcoin StackExchange at https://bitcoin.stackexchange.com. For reporting security issues, please read instructions at https://bitcoincore.org/en/contact/. If the node is "stuck" during sync or giving "block checksum mismatch" errors, please ensure your hardware is stable by running memtest and observe CPU temperature with a load-test tool such as linpack before creating an issue! -->

    <!-- Describe the issue -->

    I've tried to understand what's happening under the hood when encrypting a wallet. Valuable resources has been #8389 and #8383.

    Encrypting the wallet will

    • Create a new HD seed
    • Save a new HD seed and the old HD seed to an encrypted wallet.dat file on disk.

    If the above is correct, then the GUI is misleading (because the underlying process has changed since this GUI was created?). The process in v0.16.0 is as follows, including my suggested improvements:

    1. Select File --> Encrypt wallet... This is misleading because it gives the impresstion that it's just encrypting your existing seed. I suggest the menu item text "Create encrypted wallet..."

    2. Dialog

    unnamed

    The window title is misleading here too. It should read "Create encrypted wallet". The text in the content area should mention that this will create a new seed and that the old seed will be kept too, but is not used to generate new keys. Maybe a checkbox "Save old seed too" could be useful here (default: checked)?

    1. Dialog

    unnamed 2

    The title should be "Confirm create encrypted wallet". The questions should be replaced by eg "Are you sure you want to create a new encrypted wallet? Your old keys will [keepSeed?"still":"not"] be available in your new wallet"

    1. Dialog

    unnamed 3

    Window title should possibly read "New wallet encrypted", but existing text is probably ok. The IMPORTANT warning is very confusing. The old unencrypted backups will be perfectly usable, but you can't access funds held by keys created since encryption. The warning makes it sound like they are somehow destroyed.

    <!--- What behavior did you expect? -->

    <!--- What was the actual behavior (provide screenshots if the issue is GUI-related)? -->

    <!--- How reliably can you reproduce the issue, what are the steps to do so? -->

    <!-- What version of Bitcoin Core are you using, where did you get it (website, self-compiled, etc)? -->

    <!-- What type of machine are you observing the error on (OS/CPU and disk type)? -->

    <!-- Any extra information that might be useful in the debugging process. -->

    <!--- This is normally the contents of a `debug.log` or `config.log` file. Raw text or a link to a pastebin type site are preferred. -->

  2. fanquake added the label GUI on May 16, 2018
  3. fanquake added the label Wallet on May 16, 2018
  4. MarcoFalke added the label Docs on May 18, 2018
  5. MarcoFalke added the label good first issue on May 18, 2018
  6. MarcoFalke added this to the milestone 0.17.0 on May 18, 2018
  7. MarcoFalke removed this from the milestone 0.17.0 on May 18, 2018
  8. glaksmono commented at 3:47 PM on May 22, 2018: contributor

    @MarcoFalke Anyone is looking at this issue? @kallerosenbaum what OS are you at by the way? I presume this problem happens in all platforms? (Linux, Windows, OSX)

  9. kallerosenbaum commented at 5:08 PM on May 22, 2018: none

    @glaksmono I'm on Linux, but it should be identical on all OS I guess.

  10. eudisd referenced this in commit 88a7967c0e on Jun 2, 2018
  11. eudisd commented at 5:17 PM on June 2, 2018: none

    Hey @kallerosenbaum @glaksmono, I took an initial stab at this. Sorry about any issues that come up with the PR, as this is my first time contributing.

  12. jonasschnelli commented at 9:30 AM on June 3, 2018: contributor

    I'm not sure about this. For me, creating a new HD seed is not identical to "create a new wallet". Partial rotating the seed – which is what basically happens during encrypting HD wallets – seems okay to me if checked against what the GUI words users tell.

    Using the term "New" may mislead users. Because it will not create a new wallet (in the context of multiwallet, etc.).

    I think your not entirely wrong... I guess the main question is what context-level we are using for talking to the user at this point.

  13. kallerosenbaum commented at 8:17 AM on June 4, 2018: none

    Thanks @jonasschnelli for elaborating. I agree with you that creating a new seed is not the same as creating a new wallet. But the GUI texts during encryption process had me thinking "What!!! Does it really just encrypt the seed already written to disk???", so I had to dig deeper and search through GitHub etc to figure out what Bitcoin Core actually does before I could feel comfortable with the process. So I do think there's a problem with the GUI.

    I think it's right to communicate on the "wallet" context-level, rather than "seed" level. How about this instead:

    1. Select File --> Encrypt wallet... (As in 0.16.0)
    2. The "Encrypt wallet" dialog should explain what happens during encryption. Either as a button, eg "Explain this...", or directly in the dialog
    3. "Confirm wallet encryption" (As in 0.16.0)
    4. The "Wallet encrypted" info dialog should have a clearer IMPORTANT: text. Otherwise as in 0.16.0.

    Suggested explainer text:

    "When the wallet file is encrypted, your old seed (random data that is used to generate addresses) will be preserved, but deprecated for security reasons. A new seed is generated that all future addresses are derived from."

    Suggested IMPORTANT text:

    "IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become obsolete as soon as you start using the encrypted wallet. Please make sure you backup your newly encrypted wallet file before using it."

  14. jonasschnelli commented at 8:28 AM on June 4, 2018: contributor

    Yes. Something like this.

    In general, I think it should tell users that encrypting a wallet after creations and especially after addresses has been used is generally a bad thing. Without being to specific about internals (like "seed", etc.) We could warn more bold if the wallet has used addresses.

    But, since encryption during creation is not yet possible (soon, createwallet RPC is now merged), I think the function of crypting later should stay (probably also once there is a function to encrypt during creation).

  15. eudisd commented at 4:01 PM on June 6, 2018: none

    Going to close my PR since there is contention as to what we should do. I don't think this is a good first-issue

  16. MarcoFalke removed the label good first issue on Jun 6, 2018
  17. MarcoFalke commented at 11:50 AM on May 9, 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.

  18. MarcoFalke closed this on May 9, 2020

  19. 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-04-17 12:15 UTC

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