spesmilo / electrum

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

GUI Dialog - Warning about BIP39 #7687

Open bitcoinheiro opened 2 years ago

bitcoinheiro commented 2 years ago

The current dialog for seed creation shows the following warning when user selects BIP39. Some users are spooked, and I believe the warning is outdated since the seed scanning tool for recovery was added.

if self.seed_type == 'bip39': msg = ' '.join([ '<b>' + _('Warning') + ':</b> ', _('BIP39 seeds can be imported in Electrum, so that users can access funds locked in other wallets.'), _('However, we do not generate BIP39 seeds, because they do not meet our safety standard.'), _('BIP39 seeds do not include a version number, which compromises compatibility with future software.'), _('We do not guarantee that BIP39 imports will always be supported in Electrum.'), ])

Source: https://github.com/spesmilo/electrum/blob/b828627dc6ace2b77debc3bc811e3be2b928ea48/electrum/gui/qt/seed_dialog.py

SomberNight commented 2 years ago

The seed scanning tool is a clutch, its mere existence highlights the main weakness of bip39. At any time another wallet might start using a new derivation path + script type combo that the tool will not scan for; it is a never-ending game of playing catch-up.

Maybe the warning could be rephrased to say we do not plan to remove bip39 support but rather that it is simply impossible to guarantee compatibility with it.

bitcoinheiro commented 2 years ago

I understand this, but BIP39 is what is being used by most wallets regardless.

@lukechilds - is there a repository where all wallet makers/users could add a line with the needed info for the scanning tool to check their paths/versioning? Maybe this could help streamline the process so no one needs to play catch-up, and everyone just adds their BIP39 specifics for interoperability.

Something like walletsrecovery https://github.com/nvk/walletsrecovery.org

jpph commented 2 years ago

@bitcoinheiro there is the file /electrum)/bip39_wallet_formats.json , the file is very simple to understand and you can do a pull request on it. (I did it for coolwallet S).