Subject: Re: [bitcoin-dev] bip39

From: Billy Tetrud <[email-masked]>
Date: Tue, 18 Jan 2022 10:33:04 -0600

I agree removing any ambiguity would be good. I'd also like to see removal
of words that are a strict subset of another word. Words like add (which is
a subset of addict and address).

As far as entropy loss, I think even with an 1000 word list and a 12 word
seed, it would be unlikely in a time far longer than the age of the
universe to expect to come across one duplicate randomly generated seed.
Even if every person on the planet generated 1000 seeds per second. So I
don't really see this as a concern.

On Mon, Jan 17, 2022 at 4:45 PM Pavol Rusnak via bitcoin-dev <
[email-masked]> wrote:

> Trezor recovery cards look like this what addresses the issue:
>
> https://wiki.trezor.io/images/Seed_card_example.jpg
>
> 1. Each word has a box around it.
> 2. You write the words one under the other, not next to each other.
>
>
> On Mon, 17 Jan 2022 at 23:38, Jeremy via bitcoin-dev <
> [email-masked]> wrote:
>
>> This is a good point, but can be addressed by having a non-void
>> whitespace character (e.g., win x estate).
>>
>> changing BIP39 would be hard since software expects a standard list; it
>> would also be possible to rejection sample for seeds that do not contain
>> these pairs, unclear how much entropy would be lost from that.
>> --
>> @JeremyRubin <https://twitter.com/JeremyRubin>
>> <https://twitter.com/JeremyRubin>
>>
>>
>> On Mon, Jan 17, 2022 at 2:26 PM Erik Aronesty via bitcoin-dev <
>> [email-masked]> wrote:
>>
>>> really don't like that art, work, and artwork are 3 different words
>>>
>>> would be nice to clean up adjacent ambiguity
>>>
>>> it's not a big deal, but it can lead to confusion when writing things
>>> down
>>>
>>>
>>> dup: ('canal', 'arm') ('can', 'alarm')
>>> dup: ('canal', 'one') ('can', 'alone')
>>> dup: ('canal', 'ready') ('can', 'already')
>>> dup: ('card', 'anger') ('car', 'danger')
>>> dup: ('card', 'ice') ('car', 'dice')
>>> dup: ('card', 'inner') ('car', 'dinner')
>>> dup: ('card', 'raw') ('car', 'draw')
>>> dup: ('cart', 'able') ('car', 'table')
>>> dup: ('cart', 'ask') ('car', 'task')
>>> dup: ('cart', 'hat') ('car', 'that')
>>> dup: ('cart', 'hen') ('car', 'then')
>>> dup: ('cart', 'issue') ('car', 'tissue')
>>> dup: ('cart', 'one') ('car', 'tone')
>>> dup: ('cart', 'own') ('car', 'town')
>>> dup: ('cart', 'rack') ('car', 'track')
>>> dup: ('cart', 'rain') ('car', 'train')
>>> dup: ('cart', 'win') ('car', 'twin')
>>> dup: ('catch', 'air') ('cat', 'chair')
>>> dup: ('erase', 'arch') ('era', 'search')
>>> dup: ('fatal', 'arm') ('fat', 'alarm')
>>> dup: ('fatal', 'one') ('fat', 'alone')
>>> dup: ('fatal', 'ready') ('fat', 'already')
>>> dup: ('feed', 'anger') ('fee', 'danger')
>>> dup: ('feed', 'ice') ('fee', 'dice')
>>> dup: ('feed', 'inner') ('fee', 'dinner')
>>> dup: ('feed', 'raw') ('fee', 'draw')
>>> dup: ('feel', 'earn') ('fee', 'learn')
>>> dup: ('feel', 'end') ('fee', 'lend')
>>> dup: ('gasp', 'act') ('gas', 'pact')
>>> dup: ('gasp', 'age') ('gas', 'page')
>>> dup: ('gasp', 'air') ('gas', 'pair')
>>> dup: ('gasp', 'ill') ('gas', 'pill')
>>> dup: ('gasp', 'raise') ('gas', 'praise')
>>> dup: ('gasp', 'rice') ('gas', 'price')
>>> dup: ('gasp', 'ride') ('gas', 'pride')
>>> dup: ('gasp', 'roof') ('gas', 'proof')
>>> dup: ('kite', 'merge') ('kit', 'emerge')
>>> dup: ('kite', 'motion') ('kit', 'emotion')
>>> dup: ('kite', 'state') ('kit', 'estate')
>>> dup: ('lawn', 'arrow') ('law', 'narrow')
>>> dup: ('lawn', 'either') ('law', 'neither')
>>> dup: ('lawn', 'ice') ('law', 'nice')
>>> dup: ('legal', 'arm') ('leg', 'alarm')
>>> dup: ('legal', 'one') ('leg', 'alone')
>>> dup: ('legal', 'ready') ('leg', 'already')
>>> dup: ('seat', 'able') ('sea', 'table')
>>> dup: ('seat', 'ask') ('sea', 'task')
>>> dup: ('seat', 'hat') ('sea', 'that')
>>> dup: ('seat', 'hen') ('sea', 'then')
>>> dup: ('seat', 'issue') ('sea', 'tissue')
>>> dup: ('seat', 'one') ('sea', 'tone')
>>> dup: ('seat', 'own') ('sea', 'town')
>>> dup: ('seat', 'rack') ('sea', 'track')
>>> dup: ('seat', 'rain') ('sea', 'train')
>>> dup: ('seat', 'win') ('sea', 'twin')
>>> dup: ('skin', 'arrow') ('ski', 'narrow')
>>> dup: ('skin', 'either') ('ski', 'neither')
>>> dup: ('skin', 'ice') ('ski', 'nice')
>>> dup: ('tent', 'able') ('ten', 'table')
>>> dup: ('tent', 'ask') ('ten', 'task')
>>> dup: ('tent', 'hat') ('ten', 'that')
>>> dup: ('tent', 'hen') ('ten', 'then')
>>> dup: ('tent', 'issue') ('ten', 'tissue')
>>> dup: ('tent', 'one') ('ten', 'tone')
>>> dup: ('tent', 'own') ('ten', 'town')
>>> dup: ('tent', 'rack') ('ten', 'track')
>>> dup: ('tent', 'rain') ('ten', 'train')
>>> dup: ('tent', 'win') ('ten', 'twin')
>>> dup: ('used', 'anger') ('use', 'danger')
>>> dup: ('used', 'ice') ('use', 'dice')
>>> dup: ('used', 'inner') ('use', 'dinner')
>>> dup: ('used', 'raw') ('use', 'draw')
>>> dup: ('wine', 'merge') ('win', 'emerge')
>>> dup: ('wine', 'motion') ('win', 'emotion')
>>> dup: ('wine', 'state') ('win', 'estate')
>>> dup: ('wing', 'host') ('win', 'ghost')
>>> dup: ('wing', 'love') ('win', 'glove')
>>> dup: ('wing', 'old') ('win', 'gold')
>>> dup: ('wing', 'own') ('win', 'gown')
>>> dup: ('wing', 'race') ('win', 'grace')
>>> dup: ('wing', 'rain') ('win', 'grain')
>>> dup: ('wink', 'now') ('win', 'know')
>>> dup: ('youth', 'under') ('you', 'thunder')
>>> _______________________________________________
>>> bitcoin-dev mailing list
>>> [email-masked]
>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>>
>> _______________________________________________
>> bitcoin-dev mailing list
>> [email-masked]
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>
>
>
> --
> Best Regards / S pozdravom,
>
> Pavol "stick" Rusnak
> Co-Founder, SatoshiLabs
> _______________________________________________
> bitcoin-dev mailing list
> [email-masked]
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>