I now have a live demo of using the NATO alphabet and checksums every 4 words.
It does seem remove the stress of attempting to write unambiguous characters
and I think the demo shows it’s actually easier to type with autocomplete when
the word dictionary is not involved.
https://youtu.be/kpZcXtww8Us
-JW
On Sat, Oct 5, 2019 at 6:51 PM, JW Weatherman via bitcoin-dev
<bitcoin-dev@lists.linuxfoundation.org> wrote:
> Hey Guys,
>
> I’d like to propose a feature to bitcoin to solve the following problems:
>
> - When people read or write private keys it is very easy to mistake a letter
> or number.
> - When entering a private key a mistake isn’t identified until the entire key
> is entered.
> - When an error is made in providing a private key the location of the error
> isn’t indicated within the private key.
> - Private keys stored on paper can be lost if a single character is damaged
> or poorly transcribed.
>
> The solution I’m proposing has two parts.
>
> First provide an option to use to the NATO phonetic alphabet when displaying
> or entertaining private keys. To indicate lower case the word should not be
> capitalized. Capital letters and numbers should be capitalized.
>
> The nato phonetic alphabet is a long-standing international standard (as
> international as the use of letters and numbers already used in base58) and
> has been designed to make each letter easily distinguishable when spoken and
> written.
>
> By using whole words, that are easily distinguishable and from a very short
> word database (58 well known words that are either the English numbers or
> words that begin with the letter indicated) the likelihood of errors in
> recovery are reduced.
>
> The second part of the solution is to insert checksum letters. If every 5th
> word is actually a checksum for the previous 4 words, you end up with 13
> sentences such as:
>
> ALFA tango THREE SIX bravo
>
> In this case bravo is actually a checksum for the previous 4 words and can be
> calculated and verified as the private key is entered. If the user
> accidentally trumped BRAVO instead of bravo the checksum would immediately
> indicate an error within these 5 words (in most cases) making for a greatly
> improved user experience.
>
> An additional side effect of this is that even if an entire word is lost on
> multiple lines, the checksum would probably make guessing the correct words
> relatively easy.
>
> I realize some of these issues have been discussed in relation to bip39, but
> I hope this is more likely to be adopted by bitcoin core as it uses existing
> private keys, has no impact on keygen, does not require a standardized and
> well known word list for every language, and is essential just a display
> format that hopefully wouldn’t require invasive code changes.
>
> Thanks in advance for your feedback.
>
> -JW
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev