Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id B5AC1CC3 for ; Fri, 5 Jan 2018 17:13:28 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id C3F154E9 for ; Fri, 5 Jan 2018 17:13:26 +0000 (UTC) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 8D8F622449; Fri, 5 Jan 2018 12:13:25 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute1.internal (MEProxy); Fri, 05 Jan 2018 12:13:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sprovoost.nl; h= cc:content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=HhwzSWdBeijKJaF3YIdq8vFVjUroL5+w1zEHUC4PjPg=; b=cMiWRm/B 2DsTycSXFf1t9seuV0b8AtI1AJhTO1PtLRWzljt1BxV+KNa7lG9kPCfN+7x3lEDr MQLXYd+yqZEI6tNkURXvvZS87vVskgBBSB+faw9nLjPHtFQP2EmQRzQwRLwtq3qy O8SmnrJPABGS5P1WgDFJlNxXPMwT80e+CWpZjKGoiZeHUxFM5OTAkRrgM8FgaLsl kMn+lf4BzB3L1n7DQuRolmknJKl36/Fvu0BfAE9tAEIXdyHxic2/b2/Jv9AkX8kH diTxNrw6FVb8Fz0JEyUVARlt1qaQ806I+8SgnqF2VjyDm8wwc1MtuOxeMClwjS6M QqewkEKGygX5Qg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=HhwzSWdBeijKJaF3YIdq8vFVjUroL 5+w1zEHUC4PjPg=; b=C4/JVQ65utdvXqm7RNgjyt3J8H1WrxhIyInolq+b1bpnJ trxIVWoyTXMNz8+ZipjrgySBr4IYo2KaiV6H6ePsjLeMHbQJIIcFKzn1vKupE7hm wG4/Dxzj7mfxgG5jfqcTutqdOYeWO4rUfwdXJBKyIdeAg9mG6CEMIA6tnolikpEl N2W1yezDv0CRBH3YKWElsXBg6Nkpcf3s6AMNfCHDy9G+9AgrO/yGI1c1NV2z0Ne9 WXZCZbQGR4iaIhhigEkC5BwDVYUQvnp4RhRWc9l0b08t2aqqatdyc6iwFb+oa83h qofV1DfkIkBGhqCtK1xXFm/lHsjCAgNUdl6Jy3rtg== X-ME-Sender: Received: from [192.168.178.185] (54693d0f.cm-12-2a.dynamic.ziggo.nl [84.105.61.15]) by mail.messagingengine.com (Postfix) with ESMTPA id CFBCB24839; Fri, 5 Jan 2018 12:13:24 -0500 (EST) From: Sjors Provoost Message-Id: <2A39F6D7-CDF9-4624-BE0A-22C809C8B68C@sprovoost.nl> Content-Type: multipart/signed; boundary="Apple-Mail=_04EB0B09-2CFA-4ACF-96D0-53199B7DCB31"; protocol="application/pgp-signature"; micalg=pgp-sha256 Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\)) Date: Fri, 5 Jan 2018 18:13:23 +0100 In-Reply-To: To: Alan Evans References: <57f5fcd8644c6f6472cd6a91144a6152@nym.zone> X-Mailer: Apple Mail (2.3445.5.20) X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, MIME_QP_LONG_LINE, RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Fri, 05 Jan 2018 17:20:58 +0000 Cc: Bitcoin Protocol Discussion Subject: Re: [bitcoin-dev] BIP 39: Add language identifier strings for wordlists X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jan 2018 17:13:28 -0000 --Apple-Mail=_04EB0B09-2CFA-4ACF-96D0-53199B7DCB31 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 I don=E2=80=99t know about Electrum but many wallets validate the = English words, which helps in catching typos. Hardware wallets without a full keyboard, like the Ledger Nano S, = won=E2=80=99t even let you freely type characters; you have to select = words from a list. So although the standard technically allows what you say, if you use = anything other than 12, 16 or 24 English words, you=E2=80=99ll have = fewer wallets to choose from. I think it=E2=80=99s better to come up with a new standard than trying = to patch BIP-39 at this point, which is why I brought it up. Sjors > Op 5 jan. 2018, om 17:27 heeft Alan Evans het = volgende geschreven: >=20 > "Very few wallets support anything other than English" >=20 > By support do you mean allow recovery, validation or generation or all = three? For if you can freely type a phrase in (such as Electrum), or = even word by word, then the likely-hood is it is supported if they = remembered to normalize. >=20 > Seed generation in BIP0039 requires no dictionary what-so-ever! So = there is no word list to lose in the first place. Your funds are = accessible with just the characters and the algorithm as described in = BIP0039. >=20 > But your proposal is a million miles away from simply adding some = standard in-language names to some word lists feels like it's derailing = the OP's simple proposal. Maybe start own email chain about it. >=20 > Alan >=20 > On Fri, Jan 5, 2018 at 12:04 PM, Sjors Provoost via bitcoin-dev = wrote: > I=E2=80=99m not a fan of language specific word lists within the = current BIP-39 standard. Very few wallets support anything other than = English, which can lead to vendor lock-in and long term loss of funds if = a rare non-English wallet disappears. >=20 > However, because people can memorize things better in their native = tongue, supporting multiple languages seems quite useful. >=20 > I would prefer a new standard where words are mapped to integers = rather than to a literal string. For each language a mapping from words = to integers would be published. In addition to that, there would be a = mapping from original language words to matching (in terms of integer = value, not meaning) English words that people can print on an A4 paper. = This would allow them to enter a mnemonic into e.g. a hardware wallet = that only support English. Such lists are more likely to be around 100 = years from now than some ancient piece of software. >=20 > This would not work with the current BIP-39 (duress) password, but = this feature could be replaced by appending words (with or without a = checksum for that addition). >=20 > A replacement for BIP-39 would be a good opportunity to produce a = better English dictionary as Nic Johnson suggested a while ago: > =E2=80=A2 all words are 4-8 characters > =E2=80=A2 all 4-character prefixes are unique (very useful for = hardware wallets) > =E2=80=A2 no two words have edit distance < 2 >=20 > Wallets need to be able to distinguish between the old and new = standard, so un-upgraded BIP 39 wallets should consider all new = mnemonics invalid. At the same time, some new wallets may not wish to = support BIP39. They shouldn't be burdened with storing the old word = list. >=20 > A solution is to sort the new word list such that reused words appear = first. When generating a mnemonic, at least one word unique to the new = list must be present. A wallet only needs to know the index of the last = BIP39 overlapping word. They reject a proposed mnemonic if none of the = elements use a word with a higher index. >=20 > For my above point and some related ideas, see: = https://github.com/satoshilabs/slips/issues/103 >=20 > Sjors >=20 > > Op 5 jan. 2018, om 14:58 heeft nullius via bitcoin-dev = het volgende geschreven: > > > > I propose and request as an enhancement that the BIP 39 wordlist set = should specify canonical native language strings to identify each = wordlist, as well as short ASCII language codes. At present, the = languages are identified only by their names in English. > > > > Strings properly vetted and recommended by native speakers should = facilitate language identification in user interface options or menus. = Specification of language identifier strings would also promote = interface consistency between implementations; this may be important if = a user creates a mnemonic in Implementation A, then restores a wallet = using that mnemonic in Implementation B. > > > > As an independent implementer who does not know *all* these = different languages, I monkey-pasted language-native strings from a = popular wiki site. I cannot guarantee that they be all accurate, = sensible, or even non-embarrassing. > > > > = https://github.com/nym-zone/easyseed/blob/1a6e48bbdac9366d9d5d1912dc062dfc= 3f0db2c6/easyseed.c#L99 > > ``` > > LANG(english, u8"English", "en", = ascii_space ), > > LANG(chinese_simplified, u8"=E6=B1=89=E8=AF=AD", = "zh-CN",ascii_space ), > > LANG(chinese_traditional, u8"=E6=BC=A2=E8=AA=9E", = "zh-TW",ascii_space ), > > LANG(french, u8"Fran=C3=A7ais", "fr", = ascii_space ), > > LANG(italian, u8"Italiano", "it", = ascii_space ), > > LANG(japanese, u8"=E6=97=A5=E6=9C=AC=E8=AA=9E",= "ja", u8"\u3000" ), > > LANG(korean, u8"=ED=95=9C=EA=B5=AD=EC=96=B4",= "ko", ascii_space ), > > LANG(spanish, u8"Espa=C3=B1ol", "es", = ascii_space ) > > ``` > > > > Per the comment at #L85 of the quoted file, I also know that for my = short identifiers for Chinese, =E2=80=9Czh-CN=E2=80=9D and =E2=80=9Czh-TW=E2= =80=9D, are imprecise at best=E2=80=94insofar as Hong Kong uses = Traditional; and overseas Chinese may use either. For differentiating = the two Chinese writing variants, are there any appropriate standardized = or customary short ASCII language IDs similar to ISO 3166-1 alpha-2 = which are purely linguistic, and not fit to present-day political = boundaries? > > > > My general suggestion is that the specification of appropriate = strings in bitcoin:bips/bip-0039/bip-0039-wordlists.md be made part of = the process for accepting new wordlists. My specific request is that = such strings be ascertained for the wordlists already existing, = preferably from the persons involved in the original pull requests = therefor. > > > > Should this proposal be =E2=80=9Cconcept ACKed=E2=80=9D by = appropriate parties, then I may open a pull request suggesting an = appropriate format for specifying this information in the repository. = However, I will must needs leave the vetting of appropriate strings to = native speakers or experts in the respective languages. > > > > Prior references: The wordlist additions at PRs #92, #130 = (Japanese); #100 (Spanish); #114 (Chinese, both variants); #152 = (French); #306 (Italian); #570 (Korean); #621 (Indonesian, *proposed*, = open). > > _______________________________________________ > > bitcoin-dev mailing list > > bitcoin-dev@lists.linuxfoundation.org > > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev >=20 >=20 > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev >=20 >=20 > --Apple-Mail=_04EB0B09-2CFA-4ACF-96D0-53199B7DCB31 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE7ZvfetalXiMuhFJCV/+b28wwEAkFAlpPsjMACgkQV/+b28ww EAm9EQ/+JpHbzxN2YwGegxOe7cQ23PJSpyPuMskzxGvLEp7hW0W52X0OqIdAfhEu 51CZKULHWeMzXV9tFNzWmdAJUHLEQKMUX3xAMSgKmn6dUeMHx1348HpWtXCQ3Vqg 7JfFSPn8R/pXgzXU+G3OGJSbboZ0ngMLFk7ijxu8MT4WkvD09kuMuIBaNizWLv8G AkFBLWo0cKaaFjN3eVIuVqZSYRdQ8s+bp54m/izdpUDpTbUM8WV83pv0DXr0tNF8 W0pLkX83LiSY168uobtJYRwgXiTmpbBtWeo5xqzNvzKuQHlK79EhEoz7eRvXne8H Uzb7NxZv+yeY8kL1WINvigv4haMo2qGSU+h4u0l5BpJJ0fHjeh5SYwVRH9QZgomq RHv1JoIzWyhWqBAgxf+Q4+JNWL2JegbJYU5+8qIETwoyjiXIce0HD9j9RpGuFN5A FXmVfUWM13k/TLYqv8GaeN5w/4A6VVPX6fBovX4kGTZPr4IbcLJSM8d6OEUNECnw WbLwW1YZCD3gQcy3OWkWCip1lc81nizbrnxjQ85lKrT/iyEI8TRAaRU0YdYMpERD RKEiEp/bQKofzx4VTQW1EoByP9CAMKwEmvgj802E/1DZ5uluZ3luCBBKJnbTrAvl 3wT8DRuAh2TSQi+RY+21YPCXijC8Gd3pYxflccXoBXEDc7ETG8c= =VMn5 -----END PGP SIGNATURE----- --Apple-Mail=_04EB0B09-2CFA-4ACF-96D0-53199B7DCB31--