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
|
Return-Path: <weiji.g@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id 562A0B59
for <bitcoin-dev@lists.linuxfoundation.org>;
Tue, 6 Nov 2018 16:16:55 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com
[209.85.208.53])
by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 88414A4
for <bitcoin-dev@lists.linuxfoundation.org>;
Tue, 6 Nov 2018 16:16:54 +0000 (UTC)
Received: by mail-ed1-f53.google.com with SMTP id f8-v6so10924388edt.13
for <bitcoin-dev@lists.linuxfoundation.org>;
Tue, 06 Nov 2018 08:16:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
bh=wFcBBJViQxF3UBuWSLfmdaTuEVl7OPEEv3NIC9nNzJY=;
b=EPDkKDi7n90DiKAwByGRf1UsbTLajOOm82keR9hYI1Hjg6ErfvRuNSGwIU5gLY5ZIP
tIRXoz75vakjdMayX0Cj5aRxr4F6pxtzN3eB3gPa2tij5BQsoAPjn6yOP1M4xxgsgXQn
bPMsorCN5QM8V6ih9PD2f8Xm5cvnaW5sVhW3jh6S1B7bnuCh5V+TMlgewnqBhlW669Wr
M9G/TkUGzx3c1UQoXVVCHQ/s62hrnuiOZ7Dtu8JFByf986HGggotIDqdU8ggzOFU5Vuy
cgIoN1RR9C4gbzUOfEa0ySSBtHu5QOxmfYzR7kFsF4RdDCeGVhjWxo1+HAeBrjkyEsQP
lqqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:mime-version:references:in-reply-to:from:date
:message-id:subject:to;
bh=wFcBBJViQxF3UBuWSLfmdaTuEVl7OPEEv3NIC9nNzJY=;
b=W5eRLvjgHoA7SOyBiNQfQoJbJS++NY8eKfRc38DQmKe3yZBhEgRR+wDtjgGQR/o+DC
JvvmftYYlR8JPNR3uGm9ZJXNXIhWjj/HckmQ5t6NEtNZ9nTkmQloEHbHXbvWC8xIHu4H
TMvr7IMV2jR7T0gsGpT6FM105JoDyWPcuepntkxdt9jIefcAijQHMFSUU2vpimCLvrak
FuMkFR/0HIMkwmFEtd9CLmI+fAgM8aUubDTii8y3caUowlu1iHHobUkvBLba1S0HjUrJ
D0ebxbsXx9/4t4fN3Ai6Uvg3D35aP8rc5bWoHhH6epQyFxsHsnODcOFytZnQ1oraBMGB
B6Ng==
X-Gm-Message-State: AGRZ1gKTLKAcx7eCWEjmXWBA1e0B8zyUyutlwK0SxvuJ9bHI1W3yDkbq
dbpVdTfqS+fe5jsnEdvPrM+JLGUEA2h6/eN6lhBU47w/
X-Google-Smtp-Source: AJdET5c8al8ILZqywFCQ1FiHzoCmVXbcgrsm19hlaCEkpCye7ZUvmXIYYc/SWbtv2410mDGsNBteAGLT+oDp3TIxn/4=
X-Received: by 2002:a17:906:7143:: with SMTP id
z3-v6mr16107105ejj.241.1541521012748;
Tue, 06 Nov 2018 08:16:52 -0800 (PST)
MIME-Version: 1.0
References: <mailman.1087.1541036387.10264.bitcoin-dev@lists.linuxfoundation.org>
In-Reply-To: <mailman.1087.1541036387.10264.bitcoin-dev@lists.linuxfoundation.org>
From: Weiji Guo <weiji.g@gmail.com>
Date: Wed, 7 Nov 2018 00:16:41 +0800
Message-ID: <CA+ydi=LM+q-9WKewb=65tWCqM1cPMoWEeWq5XAxdqg4rz=ZJ6g@mail.gmail.com>
To: bitcoin-dev@lists.linuxfoundation.org
Content-Type: multipart/alternative; boundary="00000000000060f866057a015454"
X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE,
RCVD_IN_DNSWL_NONE 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: Tue, 06 Nov 2018 18:16:32 +0000
Subject: [bitcoin-dev] BIP- & SLIP-0039 -- better multi-language support
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: Tue, 06 Nov 2018 16:16:55 -0000
--00000000000060f866057a015454
Content-Type: text/plain; charset="UTF-8"
Hello everyone,
I just realized that BIP-0039 is language dependent. I was assuming the
other way till I looked closer. The way the seed is derived from a BIP-0039
entropy, as is shown below, depends on which language to generate the
mnemonic sentence:
Entropy <=> Mnemonic Sentence => PBKDF2 => BIP-0032 Seed
Therefore when a user choose a non-English mnemonic code he or she is stuck
with that language. Meanwhile only a few native languages are supported.
SLIP-0039 does not solve this issue in a user friendly way by providing
only an English wordlist. That's understandable as it aims to provide SSS
capability. However those users who do not speak English or recognize
English words will suffer.
What I am trying to bring to attention of the community is that, no matter
if we make a new version of BIP-0039, or a new BIP (with SSS support), or
to enhance SLIP-0039, we really need to address this language issue.
Here are what I propose:
1. The mnemonic code should be only a representation of underlying entropy
or (pre) master secret, seed, whatever. In this way, the same seed/secret
could be displayed in English or in Chinese or other languages. Then there
could be 3rd party conversion tools to support translations in case any
wallet software or device does not support all specified languages. Now it
looks like:
Mnemonic Sentence <=> Entropy => PBKDF2 => BIP-0032 Seed
2. Given that only 8 languages are supported in BIP-0039, we should allow
the seed/secret to be represented in decimal numbers, each ranging from 0
to 2047. So those who cannot find a native language support yet having
difficulty coping words in other languages could choose to just use numbers.
So far I don't have a preference how this should be implemented. I'd like
to hear from community first.
Thanks,
Weiji Guo
--00000000000060f866057a015454
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div dir=3D"ltr">Hello everyone,<div><br></div><div>I just=
realized that BIP-0039 is language dependent. I was assuming the other way=
till I looked closer. The way the seed is derived from a BIP-0039 entropy,=
as is shown below, depends on which language to generate the mnemonic sent=
ence:</div><div><br></div><div><div>=C2=A0 =C2=A0Entropy <=3D> Mnemon=
ic Sentence =3D> PBKDF2 =3D> BIP-0032 Seed<br></div></div><div><br></=
div><div>Therefore when a user choose a non-English mnemonic code he or she=
is stuck with that language. Meanwhile only a few native languages are sup=
ported.</div><div><br></div><div>SLIP-0039 does not solve this issue in a u=
ser friendly way by providing only an English wordlist. That's understa=
ndable as it aims to provide SSS capability. However those users who do not=
speak English or recognize English words will suffer.=C2=A0</div><div><br>=
</div><div>What I am trying to bring to attention of the community is that,=
no matter if we make a new version of BIP-0039, or a new BIP (with SSS sup=
port), or to enhance SLIP-0039, we really need to address this language iss=
ue.=C2=A0</div><div><br></div><div>Here are what I propose:</div><div><br><=
/div><div>1. The mnemonic code should be only a representation of underlyin=
g entropy or (pre) master secret, seed, whatever. In this way, the same see=
d/secret could be displayed in English or in Chinese or other languages. Th=
en there could be 3rd party conversion tools to support translations in cas=
e any wallet software or device does not support all specified languages. N=
ow it looks like:</div><div><br></div><div>=C2=A0 =C2=A0Mnemonic Sentence &=
lt;=3D> Entropy =3D> PBKDF2 =3D> BIP-0032 Seed</div><div><br></div=
><div>2. Given that only 8 languages are supported in BIP-0039, we should a=
llow the seed/secret to be represented in decimal numbers, each ranging fro=
m 0 to 2047. So those who cannot find a native language support yet having =
difficulty coping words in other languages could choose to just use numbers=
.</div><div><br></div><div>So far I don't have a preference how this sh=
ould be implemented. I'd like to hear from community first.=C2=A0</div>=
<div><br></div><div>Thanks,</div><div><br></div><div>Weiji Guo</div><div><b=
r></div></div></div>
--00000000000060f866057a015454--
|