Return-Path: Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 079F0C002F for ; Tue, 18 Jan 2022 16:33:26 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id E8984405D3 for ; Tue, 18 Jan 2022 16:33:25 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: smtp2.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id f6dtcE9YzpQ3 for ; Tue, 18 Jan 2022 16:33:24 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by smtp2.osuosl.org (Postfix) with ESMTPS id 1DCA84053E for ; Tue, 18 Jan 2022 16:33:24 +0000 (UTC) Received: by mail-ed1-x536.google.com with SMTP id u21so82006338edd.5 for ; Tue, 18 Jan 2022 08:33:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=ptmQNfQQO8tcavMwv8QatvcowdkuaQi2CQy1dFiZK2E=; b=nclIQdXFpUSwagmv3qG9+ZYObVyGPp+xU2eNqfjc8DSweL4tQSrX1Ekz8qaisFZq40 L/iaznIHzr+FWHcRb9LFhA/elqF4EXIQL4QeVQH5m+m+jnfiXn9ghnaOS6YL3WqBujJX 26X0l41Nwuf1sZWtsCWPphvdg1fgQiA0PYqVoRmYFga2S2i0Fs5hNYHC+QgP9PIeRkMi h/SLD6hzuexlej0ZB2AGpFNo1W9oEobQKAjJY9ebpdks0K9AEoZ541B/SxUDAF1xuUt2 0d7txrDoTw17glalcf6/MEcUKTI19ofD2JjBAPV6vYdIs2CyJWAfdFURb+5vi4Iybr8D yVdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=ptmQNfQQO8tcavMwv8QatvcowdkuaQi2CQy1dFiZK2E=; b=MSZTlFiPplIt3Ma6UdqRlfUjbfY8ssTbE5wgiqc64NayGQH8/vzDTSZsRp+o+nTDrT eOsdSzrKulu61YXFqdXo53ECjbRHyOTXnLEC9jZ+VteN6jJHgQWBcgXDY1g3D8dctsNe y55e/AYtrm+SuUCd52RIXE0tdtkldEQpeP6dYLFEO392y/1y4MjlyDvvkBKbdEPajU4d 4s1sY5fhnLX2QUof5szovBOo+Kxif4ed17PDorgzpQujIz4FAe4pDqmMyuOF31stczbn m1EXGVXjRDIM9dM/09HeWMBVB2k3fBQZF0Vge6nr2sd055JzKXqvgn3Ca4dDs0IOtWNS fPpg== X-Gm-Message-State: AOAM532l6Qn7T0CRVrSaeHJU6ajcqyqezo7QLkgwzsoXAxd1BfS2MUJa nPMvKOm3puKT0Uat2FiaGq3EWCvY1eI4755pRU/YPAxh X-Google-Smtp-Source: ABdhPJxJ4tq/tzn2Xy1fJ5ICjarkkEQtmvUBcXfbSS5XZFBVoI0MzgJyrmb4kwGOnV7OSCEFbPFIMbWXRUMK4Ikuz0k= X-Received: by 2002:aa7:d505:: with SMTP id y5mr2179771edq.238.1642523602225; Tue, 18 Jan 2022 08:33:22 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Billy Tetrud Date: Tue, 18 Jan 2022 10:33:04 -0600 Message-ID: To: Pavol Rusnak , Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary="000000000000d88f5805d5ddd318" X-Mailman-Approved-At: Tue, 18 Jan 2022 16:37:35 +0000 Subject: Re: [bitcoin-dev] bip39 X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Jan 2022 16:33:26 -0000 --000000000000d88f5805d5ddd318 Content-Type: text/plain; charset="UTF-8" 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 < bitcoin-dev@lists.linuxfoundation.org> 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 < > bitcoin-dev@lists.linuxfoundation.org> 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 >> >> >> >> On Mon, Jan 17, 2022 at 2:26 PM Erik Aronesty via bitcoin-dev < >> bitcoin-dev@lists.linuxfoundation.org> 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 >>> 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 >> > > > -- > Best Regards / S pozdravom, > > Pavol "stick" Rusnak > Co-Founder, SatoshiLabs > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > --000000000000d88f5805d5ddd318 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
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. Wor= ds like add (which is a subset of addict and address).=C2=A0

=
As far as entropy loss, I think=C2=A0even with an 1000 word list and a= 12 word seed, it would be unlikely in a time far longer than the age of th= e 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 do= n't really see this as a concern.=C2=A0

On Mon, Jan 17, 2022 at 4:= 45 PM Pavol Rusnak via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> 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 <bitcoin-dev@= lists.linuxfoundation.org> wrote:
This is a good point, but can be addressed=C2=A0by having a non-void whi= tespace 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 muc= h entropy would be lost from that.


On Mon, Jan 17, 2022 at 2:26 PM Erik Aronesty via= bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> 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 d= own


dup: ('canal', 'arm') ('can', 'alarm')
dup: ('canal', 'one') ('can', 'alone')
dup: ('canal', 'ready') ('can', 'already')<= br> 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')<= br> 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')<= br> dup: ('kite', 'state') ('kit', 'estate') dup: ('lawn', 'arrow') ('law', 'narrow') dup: ('lawn', 'either') ('law', 'neither')<= br> dup: ('lawn', 'ice') ('law', 'nice')
dup: ('legal', 'arm') ('leg', 'alarm')
dup: ('legal', 'one') ('leg', 'alone')
dup: ('legal', 'ready') ('leg', 'already')<= br> 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')<= br> 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')<= br> 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')<= br> _______________________________________________
bitcoin-dev mailing list
= bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mail= man/listinfo/bitcoin-dev
_______________________________________________
bitcoin-dev mailing list
= bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mail= man/listinfo/bitcoin-dev


--
Best Regards / S po= zdravom,

Pavol "stick" Rusnak
= Co-Founder, SatoshiLabs
_______________________________________________
bitcoin-dev mailing list
= bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mail= man/listinfo/bitcoin-dev
--000000000000d88f5805d5ddd318--