add Number related wordlists #663

pull yobum wants to merge 3 commits into bitcoin:master from CoolBitX-Technology:number-wordlists changing 2 files +2064 −0
  1. yobum commented at 10:10 AM on March 19, 2018: none

    A method helps avoid inherent problems in current wordlists, specifically management of multi-language wordlists (with English being the defacto), and the natural or political evolution of spelling and language use. Seed lifespan will now become multi-generational as well.

  2. Create numeric-english.txt 4b2e630237
  3. add number related wordlists 6b64e9cca9
  4. dabura667 commented at 10:25 AM on March 21, 2018: none
    1. So in order to represent 128 bits of entropy you write down 12 sets of 5 digit numbers (16.6 bits each)... that's 33% inefficient. If you want to write numbers, just divide the entropy up into 16 bit chunks and covert it to base 10 and you will get a more efficient numbering system with only 8 sets of 5 digit numbers with the same entropy. English words were only introduced because they are easy to write down. If you think writing down English words is somehow the wrong way to do it, I suggest encoding your entropy directly.
    2. Your txt file is not in any parse-able format. You should just write all 2048 numbers in the same order that matches up with the english.txt and separate them with line breaks. " = " and the English words themselves as well as the first row (we get it, you don't need to explain it in the file itself) need to go.

    concept NACK formatting NACK

  5. yobum commented at 11:07 AM on March 23, 2018: none

    To clarify: Our proposal for the number-related protocol is not related directly to the 128 bits of entropy. It is only a numeric translation source from the official English wordlist. Again, the number list is subordinate to the English wordlist and it does not directly represent seeds. Likewise, users can choose an English mnemonic to recover their seeds since English is the dominate source.

  6. yobum commented at 11:10 AM on March 23, 2018: none

    a 'mnemonic' English wordlist is based on the assumption that the presented words are easy to remember and write down for a user. The massive worldwide non-english user base has difficulty reading and writing English, thus recording and remembering these 'mnemonic' words is less likely for them. However, nearly the entire population of the world can read and write numbers. If we hope bitcoin can witness world-wide mass adoption, it is only logical to present users with an additional source to recover their valuable wallets.

  7. yobum commented at 11:13 AM on March 23, 2018: none

    The only reason we don't use another language is for compatibility reasons; most wallets do not support other languages than English.

  8. dabura667 commented at 3:32 PM on March 23, 2018: none

    ...... but you need to realize:

    12 words x 5 digits = 60 digits

    a 12 word seed is 128 bits (132 bits with the checksum) of base entropy.

    but 132 bit largest integer is:

    5444517870735015415413993718908291383295

    which is 40 digits (easier to write down)

    and you can convert the digits to a seed easily. (literally every wallet app gets a random number like the above, and converts it into the english phrase........... why convert the english words into numbers when there is a smaller number that can be converted into the same words.........?????)

  9. dabura667 commented at 3:37 PM on March 23, 2018: none

    Also, you didn't address the formatting issue.

  10. update file format d8499fa1a9
  11. yobum commented at 4:40 PM on March 26, 2018: none

    We agree that direct entropy encoding resulting in 40 digits is an elegant and efficient solution to reduce the size of the integer - this might be a long-term solution if wallet manufactures are willing to adopt numbers only. However as a hardware manufacturer, we're trying to introduce real world compatibility protocol for world-wide bitcoin users.

    Here's a response to your message:

    1. Users cannot recover their seeds on another hardware wallet if the use an integer seed wallet.

    2. Currently, seed recovery is a rare occurrence. Meaning, if a user needs to recover their seed, they'll most likely do it once or twice a year (perhaps once per month for a small number of outliers).

    3. Thus seed recovery compatibility, not efficiency, is paramount to the user. Hardware wallet compatibility is a requirement for the bitcoin community. A user must be able to recover their seeds anywhere on any device.

    The number-related wordlist is simply the original English wordlist but represented only as numbers so it can help cross language and multiple wallet compatibility.

  12. dabura667 commented at 12:35 AM on March 27, 2018: none
    1. Yes they can. You can easily convert the 40 digit number into the 12 word English phrase.
  13. dabura667 commented at 12:41 AM on March 27, 2018: none

    Every BIP39 library has a function to convert the 40 digit number (entropy) to the mnemonic phrase (12 words)

    https://github.com/bitcoinjs/bip39/blob/v2.5.0/index.js#L93

  14. iancoleman commented at 6:20 AM on March 28, 2018: contributor

    It is only a numeric translation source from the official English wordlist.

    This means what is being proposed is not a wordlist, but rather a new feature into BIP39.

    Encoding the same entropy into different languages currently produces different seeds. But if this proposal is introduced, that's no longer the case.

    abandon abandon ability is equivalent to 00001 00001 000049 and under the existing BIP39 operations should produce a different seed and keys, but would not if this proposal were accepted.

    I do not support this proposal. A mnemonic is an encoding of entropy, not an encoding of another mnemonic.

    most wallets do not support other languages than English.

    It seems they would also not support a feature / wordlist such as this one, especially considering it actually changes the BIP39 functionality rather than simply extends the existing wordlists. I don't see how the current lack of support for other languages strengthens the case for this proposal.

    we're trying to introduce real world compatibility protocol for world-wide bitcoin users.

    The number-related wordlist is simply the original English wordlist but represented only as numbers so it can help cross language and multiple wallet compatibility.

    I can see the appeal of universality but why not encode the raw entropy or the word indexes rather than a special number-word list? Having a gap of 48 between each index doesn't really add much benefit, or am I missing something? Wordlists have characteristics, but number lists don't seem to.

    My thoughts are if the numbers are treated as a wordlist and not a conversion/lookup then this proposal qualifies as a barely passable idea. But as a lookup for English it's not adding benefit to the current BIP39 specification, and if anything adds unwarranted complexity.

  15. yobum commented at 12:05 PM on March 30, 2018: none

    @dabura667 Your solution assumes that the user has the technical skills to be able to convert the 40 digit number into English if they ever need to use another wallet --in reality not many users can do that correctly. The number-encoded entropy is not supported by any other wallet. If you want to use the number-encoded entropy in other wallet, a user must first convert it using a program or library. As you can see, there are significant security considerations to this.

    We haven't found that the 40 digit proposal is the proper solution due to the technical skills needed by the user to complete, the lack of security offered on our end, and the incompatibility issues with other wallets.

    Our proposal solves all these problems - no user needs technical skills for conversion, the conversion table is published publicly, and it is compatible with all hardware wallets.

    Although we could theoretically help a user convert their seed for them, this is not ideal due to security concerns when asking the user to provide their secure seed.

  16. yobum commented at 12:28 PM on March 30, 2018: none

    @iancoleman

    It seems [other hardware wallets] would also not support a feature / wordlist such as this one, especially considering it actually changes the BIP39 functionality rather than simply extends the existing wordlists. I don't see how the current lack of support for other languages strengthens the case for this proposal.

    Other hardware wallet manufactures wouldn't need to support it. A user finds their number on the list and converts it by themselves (we never manage their seeds). They can convert the number without ever interfacing with a computer or device -- conforming with best security practices.

    abandon ability is equivalent to 00001 00001 000049 and under the existing BIP39 operations should produce a different seed and keys, but would not if this proposal were accepted.

    Exactly right. This is not a numeric mnemonic. When multi-language wordlist produces different seeds, it will prevent users from recovering their assets if their language is not supported by the wallet. In reality, most wallet support only the English mnemonic. Which renders the dictionaries of other languages irrelevant.

    We like to introduce our findings based on our real-world experience. It simplifies and streamlines the BIP39 process, not adds unwarranted complexity.

    New functionality to the English wordlist is not a bad thing, but rather an small improvement to the overall user-experience. Functionality is meant to reduce barriers to entry, not complicate.

  17. ThomasMaxon commented at 12:37 PM on March 30, 2018: none

    Encoding entropy directly into numbers is a theoretical solution to a real world problem.

    Yes, we understand that our proposal isn't a mnemonic. Yet its functionality has proven (by our users) to be a workable compromise for our non-English, first time Bitcoin users. After all, billions use numbers for security across the world everyday for passwords, lock combinations, etc.

    An mnemonic is an idealization; it would be ideal if wallets support multi-language wordlists. In reality, none of them do. It would be ideal if all users understand English. In reality, most of the world doesn't. Language fluency is the reason de entendre for a 'mnemonic' to exist in the first place.

    This problem with BIP39 and its over-reliance on the English language must be addressed. Offering solutions would be much appreciated.

    We're trying to help share this solution to the community to solve a wallet compatibility problem. Keep in mind that through this proposal, we are allowing our users to work directly with other wallets if they need to recover their seeds or take advantage of a fork. We thus see this as a community-wide call to action.

    Compatibility and usability is the next step for Bitcoin to see widespread adoption.

    If this shouldn't be included in BIP39, where should it be included?

  18. dabura667 commented at 3:19 PM on March 30, 2018: none

    You are starting to contradict yourself now.

    1. We convert each word into a number.
    2. But we don’t want to use a smaller number because that would require extra knowledge, and then users can’t convert easily into English.

    But............ the whole point of using numbers was because “not everyone uses English” and yet your primary concern with using 40 digits was, “ohh well if we do it that way we can’t get the English words that we can’t understand if we don’t understand the numbers!”

    It makes no sense.

    I’m sorry, you can make your own wallet that uses such a scheme, but no other wallet will use it because it doesn’t make sense...

    If you want to add your language to the wordlists, feel free. All my friends use Japanese phrases fine, with no problem.

  19. iancoleman commented at 6:24 AM on March 31, 2018: contributor

    I'm on board with reducing dependency on English and increasing the universal accessibility of BIP39 and mnemonics. I realise from my tone maybe that wasn't clear. However modifying the BIP39 spec is the wrong way to go about it.

    This problem with BIP39 and its over-reliance on the English language must be addressed.

    I don't see how the bip specification is the right place to address that. It seems like specific implementations and choice of wordlists are where the problem lies, not the bip39 spec.

    Offering solutions would be much appreciated. If this shouldn't be included in BIP39, where should it be included?

    Make a tool / document and publish it. If it's useful users will use it. The BIP39 spec is not the right place for that.

    I'm very-much interested in what's best for users and changing the way mnemonics work is the opposite of that.

    Compatibility and usability is the next step for Bitcoin to see widespread adoption.

    Sure, but the proposal breaks compatibility with existing BIP39 libraries. There'd be some implementations that are 'mnemonic only' wordlists and other (newer) implementations which support 'mnemonic or lookup' wordlists. That's a worse situation, not better.

    I think this quote from the bip39 spec explains why number-based mnemonics of any kind could be considered dubious: "A mnemonic code or sentence is superior for human interaction compared to the handling of raw binary or hexadecimal representations of a wallet seed." Number-based mnemonics go against the motivation of the bip regardless of how the numbers are grouped or encoded or treated.

  20. luke-jr added the label Proposed BIP modification on Apr 1, 2018
  21. luke-jr commented at 3:00 AM on April 1, 2018: member
  22. prusnak commented at 11:16 AM on April 2, 2018: contributor

    I don't care about this lists. The only list I support is the English one.

  23. ThomasMaxon commented at 12:09 PM on April 2, 2018: none

    An mnemonic is an idealization; it would be ideal if wallets support multi-language wordlists. In reality, none of them do. It would be ideal if all users understand English. In reality, most of the world doesn't. Language fluency is the reason de entendre for a 'mnemonic' to exist in the first place.

    We wrote this two days ago.

    I don't care about this lists. The only list I support is the English one.

    You're right. That's why we proposed this modification so that all wallets need only support English.

  24. teenkung commented at 9:51 AM on April 27, 2018: none

    Uy

  25. DonaldTsang commented at 5:23 AM on December 24, 2018: none

    @yobum unless you are suggesting Mnemonic Major, it is not worth the effort. https://en.wikipedia.org/wiki/Mnemonic_major_system

    Also PGP wordlist is a thing https://en.wikipedia.org/wiki/PGP_word_list Or maybe https://tools.ietf.org/html/rfc2289

  26. yobum commented at 7:02 AM on December 24, 2018: none

    @DonaldTsang With the current design of BIP39, mnemonic is not interchangeable between different languages. Non-english users are forced to use english "mnemonic" for wallet compatibility are the most cases we see. The meaning of "Mnemonic" or "easy to remember" is not making any sense anymore to non-english users. The way I see numeric mnemonic is actually a patch to BIP39, providing a way to translate your mnemonic to numbers or even other languages.

    I agree that the direct entropy encoding proposed by @dabura667 is a much more elegant solution, before we have a "better BIP39", the numeric mnemonic is the way we trying to propose to solve practical problem.

  27. DonaldTsang commented at 5:17 PM on December 24, 2018: none

    @yobum If you exclusively numbers than hex code to decimal integer will do, however it is better to have a number-to-mnemonic correspondence if you want it to be "easier to remember" and less prone to errors by checking spelling.

  28. prusnak commented at 6:28 PM on December 24, 2018: contributor

    NACK

  29. yobum commented at 6:52 AM on December 25, 2018: none

    @DonaldTsang Agree! That's the reason this pull request got "formatting NACK" from the beginning.

  30. luke-jr closed this on Feb 15, 2019


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bips. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-14 11:10 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me