Hi Marek,

Marek Palatinus wrote on 8/31/21 3:47 AM:
I fully agree with sipa and his reasoning that this proposal is not solving any particular problem, but making it actually a bit worse.
Ok, I understand. I'm just trying to find ways to reduce the risk of sending to the wrong address and to make the transaction process a bit more user friendly, specially for inexperienced users. I am sure that it can be implemented in a way without making it "worse". For example, if there is the risk that the user looks ONLY at the code and not at the address, then the code should have enough entropy to account for it. If looking at 6 characters is considered to be enough, then the code should also be 6 characters long. As I mentioned in my following message, the code could be made from specific characters of the address instead of a checksum (e.g. first 4 and last 2 characters). By showing these characters to the user separately and in a bigger font, he will be encouraged to verify all of these characters.

Also, do you know what I hate more than copy&pasting bitcoin addresses? Copy pasting zillion random fields for SEPA/wire transfers. And I believe that a single copy pasta of a bitcoin address is a much better user experience after all.

I totally agree with this :)

Cheers,
TS


Best,
slush

On Tue, Aug 31, 2021 at 9:08 AM ts via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org <mailto:bitcoin-dev@lists.linuxfoundation.org>> wrote:

    Pieter, thanks for your comments. Here my thoughts:

    Pieter Wuille wrote on 8/29/21 9:24 AM:
    > On Saturday, August 28th, 2021 at 5:17 PM, ts via bitcoin-dev
    <bitcoin-dev@lists.linuxfoundation.org 
<mailto:bitcoin-dev@lists.linuxfoundation.org>>
    wrote:
    >
    >> Following up on my original proposal, I would like to get some more 
feedback of the
    community
    >>
    >> to see if this could be realized at some point. Also, any 
recommendations as to who
    to contact
    >>
    >> to get things rolling?
    >
    > I honestly don't understand the point of what you're suggesting.

    It is about creating a simple technical assistance that makes it more user 
friendly and
    less
    error prone to verify the entered address. For all types of users, 
including those who are
    less tech savvy.


    > * If you're concerned about random typos, this is something already 
automatically
    protected against through the checksum (both base58check or bech32/bech32m).

    I agree, but as mentioned in the original proposal, it is not about random 
typos (although
    this would help for other coins without integrated checksum of course), but 
rather about
    copy&paste errors (both technical or user caused).


    > * If you're concerned about accidentally entering the wrong - but 
honestly created -
    address, comparing any few characters of the address is just as good as any 
other. It
    doesn't even require the presence of a checksum. Looking at the last N 
characters, or
    the middle N, or anything except the first few, will do, and is just as 
good as an
    "external" checksum added at the end. For randomly-generated addresses (as 
honest ones
    are), each of those has exactly as much entropy.

    Correct. However, I believe that ADDITIONALLY to looking at N characters, a 
quick check
    of a 3
    or 4 digit code in bigger font next to the address would make for a better 
user experience.
    This gives the user the reassurance that there is definitely no error. I 
agree that most
    users
    with technical background including most of us here will routinely check 
the first/last N
    characters. I usually check the first 3 + last 3 characters. But I don't 
think this is very
    user friendly. More importantly, I once had the case that two addresses 
were very
    similar at
    precisely those 6 characters, and only a more close and concentrated look 
made me see the
    difference. Moreover, some inexperienced users that are not aware of the 
consequences of
    entering a wrong address (much worse than entering the wrong bank account 
in an online bank
    transfer) might forget to look at the characters altogether.


    > * If you're concerned about maliciously constructed addresses, which are 
designed to
    look similar in specific places, an attacker can just as easily make the 
external
    checksum collide (and having one might even worsen this, as now the 
attacker can focus
    on exactly that, rather than needing to focus on every other character).

    Not so concerned about this case, since this is a very special case that 
can only occur
    under
    certain circumstances. But taking this case also into consideration, this 
is why the user
    should use the verification code ADDITIONALLY to the normal way of 
verifying, not
    instead. If
    the attacker only focuses on the verification code, he will only be 
successful with
    users that
    ONLY look at this code. But if the attacker intends to be more successful, 
he now needs to
    create a valid address that is both similar in specific places AND produces 
the same
    verification code, which is way more difficult to achieve.


    > Things would be different if you'd suggest a checksum in another medium 
than text
    (e.g. a visual/drawing/colorcoding one). But I don't see any added value 
for an
    additional text-based checksum when addresses are already text themselves.

    Yes, a visual checksum could also work. Christopher Allen proposed to use 
LifeHash as an
    alternative. It would be a matter of balancing the more complex 
implementation and need of
    space in the app's layout with the usability and advantages of use. One 
advantage of the
    digit
    verification code is that it can be spoken in a call or written in a 
message.

    > This is even disregarding the difficulty of getting the ecosystem to 
adopt such changes.

    No changes are needed, only an agreement or recommendation on which 
algorithm for the code
    generation should be used. Once this is done, it is up to the developers of 
wallets and
    exchanges to implement this feature as they see fit.

    Greetings,
    TS
    _______________________________________________
    bitcoin-dev mailing list
    bitcoin-dev@lists.linuxfoundation.org 
<mailto:bitcoin-dev@lists.linuxfoundation.org>
    https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
    <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

Reply via email to