BenWestgate / Bails

Bails is a Bitcoin solution protecting against surveillance, censorship, and confiscation. It installs Bitcoin Core on the encrypted Persistent Storage of Tails, creates and recovers Bitcoin Core wallets from Codex32 (BIP93) seed backups, and creates backup Bails USB sticks and shareable blank Bails USB sticks. Learn more in README.md.
MIT License
40 stars 7 forks source link

Asking for the persistence passphrase is annoying when trying to write & confirm the codex32 backup #38

Closed BenWestgate closed 11 months ago

BenWestgate commented 12 months ago

But is your program designed to continue having persistence ask for the password? It's asked me now like 10 times in the last 5-10 minutes. I can see why as I've now memorized an additional set of words but it's getting annoying when I'm trying to get the new codex set.

The interval between prompts was supposed to double between each successful entry of the passphrase, and halve after each unsuccessful entry, but the -50% to +50% random interval adjustment causes it to grow slower than it is supposed to with repeated success.

Solutions:

  1. find the geometric average of -50% to +50% and adjust the base interval increasing coefficient so that it averages to doubling each success.
  2. Raise the -50% until the geometric average of the random coefficient is 1 so it doubles each time (reduces the "randomness" in the interval)
  3. Reduce the decrement on a failed attempt. (the annoyed tester did not fail any attempts so 1 or 2 need to be attempted)

I think option 2 should be tried first, because tripling the interval often made me fail to remember the passphrase, while I often got annoyed if it asked again in the same length of time as before after a success.

Intuitively the interval should always increase on success and decrease on failure.

BenWestgate commented 12 months ago

I've implemented 2 and changed the randomness range to be between -33% and +50% so that on average the increment will double again and the interval will never NOT INCREASE after a successful passphrase attempt.

Let me know if it's still more annoying than it needs to be for helping your learn your new 6+ word passphrase from Persistent Storage.

BenWestgate commented 11 months ago

I also doubled the initial delay to 10 seconds and prevented it from immediately asking for the passphrase after entering it into the trainer.

BenWestgate commented 11 months ago

Closing the issue for now until I get another complaint it's too frequent or annoying or intervals are too long to remember in between.

BenWestgate commented 11 months ago

Got another complaint:

Also for big strong pass like the one i got its kinda anoying to ask for it so many times on first run.. but this is subjective of course. It asked more than 10 times if i recall alright.

This was I think between wednesday and today so on the default 10 seconds.

I will test 10 seconds as it is now, to confirm the subjective annoyance and then test 30 seconds initial time to compare my experience. I will do 3-of-4 backups since that maximizes the opportunity it has to annoy me.

If 30 seems too long for me, I will try 20 seconds to see if it's better than 10. Not annoying the users is important for them to enjoy using and recommend the software. It's a balance between them not forgetting and proceeding thru setup relatively smoothly. I think a target of around 7 prompts for the 2-of-2 backup setup will be sufficiently not annoying, as I've had complaints saying "10" and "13", of course they get more if they fail to enter it correctly and there's some random variation.

Chat GPT recommended 30-45 seconds initial time so trying 30 will be the low end of that recommendation.

BenWestgate commented 11 months ago

I need to ask the tester if he mistyped his passphrase a lot causing the extra prompts or if his accuracy was perfect and it still annoyed him.

BenWestgate commented 11 months ago

Another tester and myself creating a 3-of-4 today were annoyed by this. Setting it to 30 seconds to avoid more negative feedback and closing this issue.

Opening a new issue that is the dialog should wait for the user to not be on a typing prompt like passphrase or share entry before it pop ups otherwise the annoyance is compounded by typing going in the wrong window.

BenWestgate commented 11 months ago

I think this is resolved now with the 30 seconds initial delay. It's enough to make you memorize the passphrase but not seriously annoying. Probably a good balance for now. I want to see roughly equal numbers complaining about not remembering the passphrase as saying it was too annoying during setup and they did not appreciate the quantity of prompts to leave it as it is.

BenWestgate commented 11 months ago

71 will be the final solution to the spaced repetition problem, as it's not so much the frequency as the inopportune timing. Nearly every report mentioned while typing shares and I agree, so that's a medium priority issue.