summaryrefslogtreecommitdiff
path: root/0a/3accc76a01af46787fcfe45bdfe884179e8447
blob: 292e345c3052b4606d475e0fd7d22735d90a7b0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
Return-Path: <sjors@sprovoost.nl>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 1F1D8CA4
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri,  5 Jan 2018 16:04:18 +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 C2DE64EB
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri,  5 Jan 2018 16:04:16 +0000 (UTC)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
	by mailout.nyi.internal (Postfix) with ESMTP id 8E01821726;
	Fri,  5 Jan 2018 11:04:15 -0500 (EST)
Received: from frontend2 ([10.202.2.161])
	by compute1.internal (MEProxy); Fri, 05 Jan 2018 11:04:15 -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=XOUCJ9uFd4pGlr6QsFx+UpkW99V63ZrbmTP9AZ29i/c=; b=rMrBixeA
	ZRk7a1fUtcenMxq1OwfYrYrAb/HyicICvrvWflUSVkw0EwXi4KNSEuk3mFMzKmje
	5n5zuxgZeTRV6s52K1BFEgmfxVSgYi1RWGjlsQbTxGZ9bwZNl4o6t1gsVZhiazmw
	KAcyhMygm9Luwz7ONfLjrt7WxYpxExyA/xrdlI1bYIdjQU3+EXve8k+7KD+xUFfR
	MHh069C8KHE1JM1qSMVITwJdP4dHfIwRvkJgindWiIiJ0EZ0jQ8ebFaJ2XpdkxY2
	GupofqwJqZumD6ocZGXdJ9Phwb79ZquHbFC5vm+vmeBvliQF8iKq06qAHFUekTbI
	mpTCZErbXv7bxw==
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=XOUCJ9uFd4pGlr6QsFx+UpkW99V63
	ZrbmTP9AZ29i/c=; b=kla0UjIS389pIVAestsPx7anpOzQ1GFTPEQtoCQH9LPPh
	0pxMpOIgAbzslOdOuI4uO89+EmeANq7ONXOEkn8FEbfzWdgSTHRsx6EnGQfiwwWm
	9YCXWVuXT+v1T9IbVap3ax/dbk8d4Y9wSrMVb02PNLyJE/lHmuDLqo/ersIvouGv
	JxVla60jJ9sMtAMs4ew9Dh6t3EtfUxVXe9bxkdvSOb+98uCCD5wygcbNf1cbv4RW
	k+J3/7hXp9qPo0uPBY4Ed+2i2KLL3t4GjEUTwUxLGVueekPgFb8Yrwwo4NgGFt/o
	NmSqI+oF2b94S+epD3NNDOsWW93htz0YPa480B5Ug==
X-ME-Sender: <xms:_6FPWpj3akKa7QnvAZahhFcqjE9X0QGyWFJoWETGNYW3ieg-s6Yhhg>
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 96D9A24802;
	Fri,  5 Jan 2018 11:04:14 -0500 (EST)
From: Sjors Provoost <sjors@sprovoost.nl>
Message-Id: <BB3FA46E-AA09-4A60-9D0F-8E350015E107@sprovoost.nl>
Content-Type: multipart/signed;
	boundary="Apple-Mail=_471A42E5-E9C2-4E24-BD65-764E85273817";
	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 17:04:10 +0100
In-Reply-To: <57f5fcd8644c6f6472cd6a91144a6152@nym.zone>
To: nullius <nullius@nym.zone>,
	Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
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 16:08:50 +0000
Cc: arachnid@notdot.net
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 <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jan 2018 16:04:18 -0000


--Apple-Mail=_471A42E5-E9C2-4E24-BD65-764E85273817
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

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.

However, because people can memorize things better in their native =
tongue, supporting multiple languages seems quite useful.

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.

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).

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

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.

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.

For my above point and some related ideas, see: =
https://github.com/satoshilabs/slips/issues/103

Sjors

> Op 5 jan. 2018, om 14:58 heeft nullius via bitcoin-dev =
<bitcoin-dev@lists.linuxfoundation.org> het volgende geschreven:
>=20
> 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.
>=20
> 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.
>=20
> 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.
>=20
> =
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 )
> ```
>=20
> 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?
>=20
> 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.
>=20
> 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.
>=20
> 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


--Apple-Mail=_471A42E5-E9C2-4E24-BD65-764E85273817
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/+b28wwEAkFAlpPofoACgkQV/+b28ww
EAmvORAAsMK//Ba1xM6yu18BB4fGTNt/001Ee6PWGKgwsUFpK68w0N0eTdSMI7N1
ArVQiOMdaVSvBKrzVZvAl5+lwzYWhcAK4z6ntApvFyyyD2Oa1UmxHWWPfNMK3aGR
zNqC8KeRxuUbyfiz4uIPaRj04BL0OtiM3PpN/aXnOqAJzrDVOkJLIxBIM3JslI1B
cz/bbQTbzpte2ND79utd8OlNwapCfvWcGENwqqMqlnbKVfuRGuGayyGjRM/TSXpB
TByDv3cAGkakVujbEMCFvJrR85w/ddHfyxvjScacumMNHwn18rvNFqzdtjhFy8sJ
/L88i7ZprW5wp2d5JPqiiOl962J75laf5JUWIVvwcwttgm2Lyzbg51jmwTV38mdZ
JJ8yDAgONwz/ivoxcQb4TyW6F3+CV0aao8I9C69qS7KHtdi43X+qms/EwtRSgFT8
IoFnS8XjLErH75ATjHWps6WxLhhrsnMxms4Onj8XNTVLS2IC97XnrCXW2j6G4GOe
pyiVFH/j5Zw8ku/VIAegeR7C0dgW7IuxvHX6aBffuSjPZG47+m5FBqhq4TQkAKO2
YKc9MrjPnZxPWfD/OJxP/EsV58RC0DnLxY0v64JA/ft9W0PVBrtrQO6Y2oefJ+UZ
UaWVVy/0m5Ck5OPVsTNvF+DZjUQCrghh2iAkeWlH1lluuJQox2Y=
=vnAG
-----END PGP SIGNATURE-----

--Apple-Mail=_471A42E5-E9C2-4E24-BD65-764E85273817--