Electrum 2.0 has been tagged



Summary:

The author argues that Electrum 2.0 should use BIP39, as the wordlists within it do not require to be fixed between wallet providers. The recommendations are made to assist with predictive text, making it easy for mobile apps to predict words being typed in after a few characters. This means that implementing a wordlist of profanities or Star Wars terms and still accepting a mnemonic from another provider is possible. Changing the wordlist in the future has zero effect on derived seed; whatever mnemonic is provided will always generate the same seed. The author believes that Electrum 2.0 should have BIP39, which would take almost no effort to put in. Thomas V argues against using BIP39, as it reproduces two mistakes he made when he designed the older Electrum seed system. Firstly, the seed phrase does not include a version number. Secondly, it requires a fixed wordlist. He believes that BIP39 could and should have been written without including the wordlist in the standard. Electrum v1 uses a bidirectional mapping between words and numbers, while Electrum v2 uses a hash of the seed phrase (pbkdf). Early versions of BIP39 used the former, and later switched to the latter. However, BIP39 uses (2) only to derive the wallet keys, not for its checksum. The BIP39 checksum uses (1), and it requires a fixed wordlist. This is inconsistent. Having a fixed wordlist is unfortunate, as it means that BIP39 will probably never leave the 'draft' stage until all languages of the world have been added. In order to support the old Electrum v1 seeds, all future versions of Electrum will have to include the old wordlist. In addition, when generating new seed phrases, Electrum now has to avoid collisions with old seed phrases because the old ones did not have a version number. Electrum v2 derives both its private keys and its checksum/version number using a hash of the seed phrase. This means that wordlists can be added and modified in the future without breaking existing seed phrases. It also means that it will be easy for other wallets to support Electrum seedphrases: it requires about 20 lines of code, and no wordlist is required.


Updated on: 2023-06-09T18:15:52.767782+00:00