public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Moral Agent <ethan.scruples@gmail•com>
To: Bitcoin Protocol Discussion <bitcoin-dev@lists•linuxfoundation.org>
Subject: Re: [bitcoin-dev] Visually Differentiable - Bitcoin Addresses
Date: Mon, 30 Oct 2017 12:48:09 -0400	[thread overview]
Message-ID: <CACiOHGz+Knj9LNHfNs4KKgMzb-KyRrDV-6ZWAskiz4Ab2sdTyg@mail.gmail.com> (raw)
In-Reply-To: <CAJN5wHW=ySsCxR237TAzXyqXf1VixsA2T7qCA8FCS12PPabU+Q@mail.gmail.com>

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

Or like keyart:
https://pthree.org/2014/04/18/the-drunken-bishop-for-openpgp-keys/

Images would definitely be quicker to verify by a human, but I don't think
humans can RELIABLY verify anything close to 25 bytes through an image.

Our visual processing system is designed wrong for this purpose, since it
subconsciously "corrects" visual input to whatever we expect to see.

It isn't enough to say that any small change produces a "significantly"
different image. What you need is for it to be (practically) impossible to
construct an image that looks similar but is wrong, which is a far higher
standard. For example, any change to a private key renders a significantly
different address -- but it is possible for an attacker to grind their way
to a similar-looking address.

I would recommend displaying 16 words in a 4 x 4 grid, but otherwise with
no visual distractions.

For example, don't provide an image next to the words as a help. Don't use
colors to differentiate two different sets of 16 words. What will happen is
people will see a pattern that triggers a sensation of familiarity, and
they will not carefully verify all of the words -- which is what security
requires.

For higher security keys, you could grind an address with enough zeros at
the beginning to be expressed by fewer words. For example, you could grind
to an address that could be fully expressed with a 12 word (4 x 3) grid
that would be easier for a human to verify reliably.

On Mon, Oct 30, 2017 at 12:15 PM, Danny Thorpe <danny.thorpe@gmail•com>
wrote:

> Humans are very visually oriented, recognizing differences in images more
> easily than differences in text.
>
> What about generating an image based on the bytes of an address, using
> something like identicon, used by gravatar? Any small change to the text
> input produces a significantly different image.
>
> -Danny
>
> On Oct 30, 2017 7:43 AM, "Moral Agent via bitcoin-dev" <
> bitcoin-dev@lists•linuxfoundation.org> wrote:
>
>> If you are going to rely on human verification of addresses, the best way
>> might be map it to words.
>>
>> For example, with a 6000 word list, a 25 byte address (with a checksum)
>> could be mapped to 16 words like this:
>>
>> vocally           acquire        removed     unfounded
>> euphemism    sanctuary    sectional     driving
>> entree            freckles    aloof           vertebrae
>> scribble          surround      prelaw         effort
>>
>> In my opinion, that is much faster to verify than this:
>>
>> 13gQFTYHuAcfnZjXo2NFsy1E8JGSLwXHCZ
>>
>> or
>>
>> bc1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3qccfmv3
>>
>> Although I really do love Bech32.
>>
>> On Mon, Oct 30, 2017 at 9:13 AM, shiva sitamraju via bitcoin-dev <
>> bitcoin-dev@lists•linuxfoundation.org> wrote:
>>
>>> For example bc1qeklep85ntjz4605drds6aww9u0qr46qzrv5xswd35uhjuj8ahfcqgf6hak
>>> in 461e8a4aa0a0e75c06602c505bd7aa06e7116ba5cd98fd6e046e8cbeb00379d6 is
>>> 62 bytes ! This is very very long. This will create lot of usability
>>> problems in
>>>
>>> - Blockexplorers (atleast user should be visually able to compare in a
>>> transaction having multiple outputs which one his address)
>>> - Mobiles
>>> - Payment terminals
>>>
>>> From my limited understanding, the purpose of inventing a bitcoin
>>> address format is for usability and ease of identification (versus a ECDSA
>>> public key), While I get the error/checksum capabilities Bech32 brings, any
>>> user would prefer a 20 byte address with a checksum  over an address that
>>> would wrap several lines !!
>>>
>>>
>>> On Mon, Oct 30, 2017 at 6:19 PM, Ben Thompson <
>>> thompson.benedictjames@gmail•com> wrote:
>>>
>>>> Checking the first few bytes of a Bitcoin Address should not be
>>>> considered sufficient for ensuring that it is correct as it takes less than
>>>> a second to generate a 3 character vanity address that matches the first 3
>>>> characters of an address.
>>>>
>>>> On Mon, 30 Oct 2017, 11:44 shiva sitamraju via bitcoin-dev, <
>>>> bitcoin-dev@lists•linuxfoundation.org> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> When I copy and paste bitcoin address, I double check the first few
>>>>> bytes, to make sure I copied the correct one. This is to make sure some
>>>>> rogue software is not changing the address, or I incorrectly pasted the
>>>>> wrong address.
>>>>>
>>>>>
>>>>> With Bech32 address, its seems like in this department we are taking
>>>>> as step in the backward direction. With the traditional address, I could
>>>>> compare first few bytes like 1Ko or 1L3. With bech32, bc1. is all I can see
>>>>> and compare which is likely to be same anyway. Note that most users will
>>>>> only compare the first few bytes only (since addresses themselves are very
>>>>> long and will overflow in a mobile text box).
>>>>>
>>>>> Is there anyway to make the Bech32 addresses format more visually
>>>>> distinct (atleast the first few bytes) ?
>>>>> _______________________________________________
>>>>> bitcoin-dev mailing list
>>>>> bitcoin-dev@lists•linuxfoundation.org
>>>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> bitcoin-dev mailing list
>>> bitcoin-dev@lists•linuxfoundation.org
>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>>
>>>
>>
>> _______________________________________________
>> bitcoin-dev mailing list
>> bitcoin-dev@lists•linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>
>>

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

      reply	other threads:[~2017-10-30 16:48 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-30  8:56 shiva sitamraju
2017-10-30 12:14 ` Ricardo Filipe
2017-10-30 14:23   ` Ben Thompson
2017-10-30 12:49 ` Ben Thompson
2017-10-30 13:13   ` shiva sitamraju
2017-10-30 14:26     ` Pieter Wuille
2017-10-30 14:39     ` Moral Agent
2017-10-30 16:15       ` Danny Thorpe
2017-10-30 16:48         ` Moral Agent [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=CACiOHGz+Knj9LNHfNs4KKgMzb-KyRrDV-6ZWAskiz4Ab2sdTyg@mail.gmail.com \
    --to=ethan.scruples@gmail$(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