spesmilo / electrum

Electrum Bitcoin Wallet
https://electrum.org
MIT License
7.41k stars 3.08k forks source link

Provide link to documentation in the "Derivation" section of hardware wallet setup #3373

Closed fresheneesz closed 6 years ago

fresheneesz commented 6 years ago

When setting up a hardware wallet (eg Trezor) in a new electrum wallet (I'm on v3.0.2), you get to a section called "Derivation" that explains absolutely nothing about what it is, what it means, or where to find more information about it. From a usability standpoint, this is as bad as it gets. The only thing that could make this section worse is if it didn't pre-populate that field with anything. But since it does prepopulate that field, in the case you're trying to use a segwit address, the prepopulated value is incorrect.

Is there documentation for this value (ie how to construct the value, what its parts mean, etc)? I couldn't find any documentation of this. But if it does exist, that documentation should be linked to from this section. If it doesn't, then someone should write and publish that documentation.

But, having the user type a bizarre string here can't be the best user interface for this, right?

SomberNight commented 6 years ago

It's a complex topic.

BIP44, BIP43, BIP49 (all these implicitly use BIP32)

I guess the default derivation could be changed to use BIP49 (segwit-p2sh)... that would be beneficial to new users, BUT existing users, especially casual ones, might freak out and think they lost their coins, and blame it on Electrum. This is why, as far as I know, this project considers BIP44 and related BIPs to be bad design, but hardware wallets and some other software still use it... hence Electrum is also forced to support it.

When you use Electrum seeds, all this is completely abstracted away from the user, as this information is encoded in the seed words themselves. This is why you need to generate new seed words if you want to use segwit -- because it is encoded in the older type seed words not to use it.

EDIT: https://blog.trezor.io/using-trezor-with-electrum-v3-a0b9bcffe26e

fresheneesz commented 6 years ago

@SomberNight Thanks for the info! Could we add this info somewhere in the electrum docs, and then add a link to that documentation page in the Derivation section when setting up? We could then add to it from there.

I would suggest adding a dropdown here where the user can select from "standard (BIP44)", "segwit (BIP49)", and "custom" where if you select custom, it gives you a blank input to type in your derivation path.

ecdsa commented 6 years ago

I guess we could have a buttton that sets default values for 44 and 49, while still allowing other derivations. Arbitrary derivations were required for Multibit users, because Multibit did not follow bip44

benma commented 6 years ago

I was just about to make a new issue when I found this. It would be very helpful if the derivation dialog window would have a dropdown or buttons with descriptive labels (i.e. Segwit) for common derivations.