hivewallet / discussions

Discussions and issues related to Hive
https://github.com/hivewallet/discussions/issues
3 stars 2 forks source link

Creating and managing Hive wallets #12

Closed jenbennings closed 10 years ago

jenbennings commented 10 years ago

In light of recent discussions around the ability to open a single wallet on multiple devices, I’ve been focusing on the implications this has for the user. Specifically, the three use cases (I know of) that we need to cater for:

  1. A new user wants to create a new wallet
  2. A return user wants to open an existing wallet
  3. A return user wants to open an existing wallet on a new device

While these problems may be immediately tied to hive-js, if we plan to make the passphrase authentication cross-platform, it makes sense to have a consistent approach. The only exception would be if there was a hardware feature tied to a specific platform that made the process easier for the user.

The current solution

New user

Return user

Disregarding the fact that when I first started testing hive-js passphrases were still a foreign concept to me, the lack of informative language and visual cues signifying a difference between the two made this a very confusing process as a new user.

Proposed solution

1. A new user wants to create a wallet

I believe that new users shouldn't be presented with a hint of the app at this stage (not the modal overlay that currently exists in the prototype), with the primary focus on introducing the concept of the passphrase and emphasising its importance.

After selecting ‘Create a new wallet’ the user would be taken through a wizard to generate their passphrase, similar to what was demonstrated here.

2. A return user wants to open an existing wallet

This should feel significantly different to 1, and is where I would suggest the use of a modal to partially obscure the app underneath. Further to this, we have two options for when we prompt for the PIN...

Upon returning to Hive, the user is either:

  1. Met with a PIN prompt which unlocks the whole wallet
  2. Can use a read only version of the wallet, but when attempting an action such as sending a bitcoin or adding a contact, they are met with a PIN prompt

I see drawbacks to both approaches, but at this stage would opt for 1. as a default, with 2. as a setting. Perhaps even a third option in user settings could be removing the PIN entirely (with appropriate warnings, of course). Is that too dangerous? If I store less than $100 in my wallet I'd personally be willing to forgo the risk in order to avoid entering a PIN every time I use it. Or do we not want to encourage this behaviour?

3. A return user wants to open an existing wallet on a new device

A return user attempting to set up an existing wallet on a new device will be presented with the same screen has 1, however their next step will require them to enter their passphrase, rather than generating a new one.

At the moment, this sucks on mobile. One input for 14 words, no sanitisation, autocorrect on, autocomplete on... Yuck. We can do much better than this. Our first idea is something along the lines of this:

We stick with one input, however the string is printed above as you type, so you get your passphrase at a glance without losing your spot. This is a rough prototype of the behaviour:

As usual, thoughts, ideas, suggestions welcome.

weilu commented 10 years ago
mackuba commented 10 years ago

Looks good, this is definitely an improvement :+1:

Perhaps even a third option in user settings could be removing the PIN entirely (with appropriate warnings, of course). Is that too dangerous? If I store less than $100 in my wallet I'd personally be willing to forgo the risk in order to avoid entering a PIN every time I use it. Or do we not want to encourage this behaviour?

I don't think that's a good idea... Sooner or later you'll be getting emails from people who had $10000 in an unprotected wallet complain that they didn't know they should have had a password...

We stick with one input, however the string is printed above as you type, so you get your passphrase at a glance without losing your spot.

I'm not sure how this is better than just one big text area that can fit the whole phrase. Also, you mentioned autocomplete, that could definitely be useful and would speed up typing (you type "ex" and then just click "exhibit" instead of typing the whole word).

The readonly-until-one-needs-to-spend wallet makes sense to me as users who are conscious about privacy normally have lock screen set for their phone. And don't easily lend their phones to people they don't trust. But that said, there are always the paranoid ones like @jsuder :p

I'm only paranoid in some cases and I'm completely indifferent in some others. I didn't have a lock in my iPhone 4 because it was too annoying to type every time (thank Steve for the TouchID) ;)

I personally like the dark skin & color scheme.

I hate dark color schemes...

javgh commented 10 years ago

Looks good to me!

To have the PIN dialog look different makes sense to me, but I also have to say, that it seemed a bit out of place to by being very different. Maybe if I see it with the app interface in the background, I might have a different opinion though.

I would be in favor of having a no-PIN option somewhere, even if @kuba is right, that his scenario will probably happen at least once. =)