public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: JW Weatherman <jw@mathbot•com>
To: Bitcoin Protocol Discussion <bitcoin-dev@lists•linuxfoundation.org>
Subject: Re: [bitcoin-dev] Human readable format for private keys
Date: Tue, 10 Dec 2019 02:11:10 +0000	[thread overview]
Message-ID: <xannjm1wBI-vJPTaiNABDY6HPg-mhpigLQc3ENxKL6tBvYnYhap-YrBhBzbpiO8prtTJjryqEYbIHA8Jp1zVCXREZcFaXm6CJCADJXrhy98=@mathbot.com> (raw)
In-Reply-To: <9QeoIpWbdIBmLIvDI1SnwIIUSu84IDb1DqCNIn60CrKbnwZkOk0aFZY8uNCv5hCC6QK2nChJ3lQdvGwftGwhBYTayzVqIgQ3L1UC4nw5Y2Y=@mathbot.com>

[-- Attachment #1: Type: text/plain, Size: 2799 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 3626 bytes --]

      reply	other threads:[~2019-12-10  2:20 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-05 22:51 JW Weatherman
2019-12-10  2:11 ` JW Weatherman [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='xannjm1wBI-vJPTaiNABDY6HPg-mhpigLQc3ENxKL6tBvYnYhap-YrBhBzbpiO8prtTJjryqEYbIHA8Jp1zVCXREZcFaXm6CJCADJXrhy98=@mathbot.com' \
    --to=jw@mathbot$(echo .)com \
    --cc=bitcoin-dev@lists$(echo .)linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox