2

Looking through the 2048 words on the English BIP39 list on GitHub, I could see there are lots of words that differ from one or more others by just one letter. This is inherently weak as it is too easy to mistake one word for another in the list. It's not fault tolerant either. The German list readme.md appears to say the German list has been tested and constructed in a thoughtful manner. The English list would fail the sort of tests the German list passes.

  1. Is there a standard in BIP39?
  2. Is there a set of approved compliance tests or an approved compliance testing tool that the English word list can be subjected to and subsequently made more robust and resilient against stains and fading?
  3. Does BIP39 define a mechanism for evolving the word list?

As it stands, I'm not yet ready to trust an English seed sequence.

3

Is there a standard in BIP39?

BIP39 says:

An ideal wordlist has the following characteristics:

a) smart selection of words

  • the wordlist is created in such a way that it's enough to type the first four letters to unambiguously identify the word

b) similar words avoided

  • word pairs like "build" and "built", "woman" and "women", or "quick" and "quickly" not only make remembering the sentence difficult but are also more error prone and more difficult to guess

c) sorted wordlists

  • the wordlist is sorted which allows for more efficient lookup of the code words (i.e. implementations can use binary search instead of linear search)
  • this also allows trie (a prefix tree) to be used, e.g. for better compression

The wordlist can contain native characters, but they must be encoded in UTF-8 using Normalization Form Compatibility Decomposition (NFKD).

I don't think there's any conformance test specified in BIP39 itself. Since Bitcoin is (arguably) decentralised as much as reasonably possible, there isn't really any single person or body who can authoritatively or officially approve lists or tests.

In a List of BIP39 wordlists there are additional criteria that have been applied for some languages other than English.

I believe you could, with careful preparation, engage in discussion with the Bitcoin development community in their preferred fora and subsequently attempt to craft a BIP that is likely to get broad support among both developers and the broader community and submit your BIP to supersede BIP39. You'd have to be sure that others with lower expectations would be willing to go along with the disruption or make careful provision for compatibility with BIP39 and programs that use it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.