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
226
227
228
229
230
231
232
233
234
|
Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193]
helo=mx.sourceforge.net)
by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
(envelope-from <gary.rowe@bitcoin-solutions.co.uk>)
id 1YW7D2-0001oi-C9 for bitcoin-development@lists.sourceforge.net;
Thu, 12 Mar 2015 17:47:48 +0000
X-ACL-Warn:
Received: from gproxy5-pub.mail.unifiedlayer.com ([67.222.38.55])
by sog-mx-3.v43.ch3.sourceforge.com with smtp (Exim 4.76)
id 1YW7D0-00045W-HL for bitcoin-development@lists.sourceforge.net;
Thu, 12 Mar 2015 17:47:48 +0000
Received: (qmail 23078 invoked by uid 0); 12 Mar 2015 17:21:01 -0000
Received: from unknown (HELO cmgw2) (10.0.90.83)
by gproxy5.mail.unifiedlayer.com with SMTP; 12 Mar 2015 17:21:01 -0000
Received: from just26.justhost.com ([173.254.28.26]) by cmgw2 with
id 2hLv1q00j0ZoGd101hLyw0; Thu, 12 Mar 2015 11:20:59 -0600
X-Authority-Analysis: v=2.1 cv=d8xml3TE c=1 sm=1 tr=0
a=W0pEH2JMt/Z8OgX48NRskQ==:117 a=BY8XqHikAAAA:8 a=f5113yIGAAAA:8
a=AUjNyygZAAAA:8 a=pGLkceISAAAA:8 a=1XWaLZrsAAAA:8 a=geqOZIdv6ycA:10
a=E5ewRcf9vxcA:10 a=emO1SXQWCLwA:10 a=t1VQV7EkAAAA:8 a=FP58Ms26AAAA:8
a=43qFkJKtdgF_JTJVCj8A:9 a=ieFiBJ-CYhyvoVUU:21 a=ixPFKREYKoOMdfT2:21
a=QEXdDO2ut3YA:10 a=mt_iAf2ko0gA:10 a=IoeQSOh0AAAA:8
a=j9DsRBbtpZGcZKfl-OYA:9
a=FKAWSqKIilljA9yS:21 a=2hRoHtr57HszsInw:21 a=xC4l_JduujifS-EM:21
Received: from [74.125.82.180] (port=36901 helo=mail-we0-f180.google.com)
by just26.justhost.com with esmtpsa (TLSv1.2:AES128-GCM-SHA256:128)
(Exim 4.82) (envelope-from <gary.rowe@bitcoin-solutions.co.uk>)
id 1YW6n3-0002iQ-2h for bitcoin-development@lists.sourceforge.net;
Thu, 12 Mar 2015 11:20:57 -0600
Received: by wesx3 with SMTP id x3so17952573wes.4
for <bitcoin-development@lists.sourceforge.net>;
Thu, 12 Mar 2015 10:20:53 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.194.120.230 with SMTP id lf6mr88184241wjb.78.1426180853503;
Thu, 12 Mar 2015 10:20:53 -0700 (PDT)
Received: by 10.28.24.145 with HTTP; Thu, 12 Mar 2015 10:20:53 -0700 (PDT)
In-Reply-To: <CANEZrP2AhCfks7Q+16PHGB0ZEeWwbdbbQM_xj3ebrkgDBgbosg@mail.gmail.com>
References: <54F32EED.6040103@electrum.org>
<CANEZrP23buJF0ENfrKGRuzpQ3Uod09s-kRcb3CBw1-OmUxEyZg@mail.gmail.com>
<550057FD.6030402@electrum.org>
<CANEZrP2UrRYG2wh3DHHj9B3Sp1X=n+gPCRcoj1Fouu4Lg157UA@mail.gmail.com>
<CAJna-HhHkmOTqNW2R6=Cih+tM_Eeu5o1LBxA4ZNzp-6vm1p6fg@mail.gmail.com>
<CANEZrP2AhCfks7Q+16PHGB0ZEeWwbdbbQM_xj3ebrkgDBgbosg@mail.gmail.com>
Date: Thu, 12 Mar 2015 17:20:53 +0000
Message-ID: <CAKm8k+0MrwU-M0sZ0_LD8hYgWiGzoGj6ELb2wdp5Phq-zO1CPA@mail.gmail.com>
From: Gary Rowe <gary.rowe@bitcoin-solutions.co.uk>
To: Bitcoin Development <bitcoin-development@lists.sourceforge.net>
Content-Type: multipart/alternative; boundary=089e0115fe24289e0105111a9bf0
X-Identified-User: {3760:just26.justhost.com:bitcoinc:bitcoin-solutions.co.uk}
{sentby:smtp auth 74.125.82.180 authed with
gary.rowe@bitcoin-solutions.co.uk}
X-Spam-Score: 1.0 (+)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,
no trust [67.222.38.55 listed in list.dnswl.org]
1.0 HTML_MESSAGE BODY: HTML included in message
X-Headers-End: 1YW7D0-00045W-HL
Subject: Re: [Bitcoin-development] Electrum 2.0 has been tagged
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Thu, 12 Mar 2015 17:47:48 -0000
--089e0115fe24289e0105111a9bf0
Content-Type: text/plain; charset=UTF-8
When Jim and I were selecting which combination of HD wallet structures to
support we noted the following:
* BIP39 is a good standard list to select from that mandates words that do
not look similar to each other, a certain spelling (no English US/UK
confusion) and possible foreign language variants provided by experts later
* BIP32 (m/0h/0/0) and BIP44 (m/44h/0h/0h/0/0) allow for maximum
compatibility with other wallets
* including a date in the "wallet words" themselves is open to spoofing
since the generator cannot be sure the date is correct (local time drift,
provided externally by untrusted third party etc)
* a timestamp as optional external metadata is useful to reduce sync times
in SPV
* our experience verified that users will very often enter a timestamp
incorrectly (locale, fat fingers, bad memory etc) so we opted for "number
of days elapsed since Bitcoin genesis block with a modulo 97 checksum
appended" (e.g. 1850/07) to mitigate this
* if a user has no timestamp then blank is the only alternative (no
guessing) which is interpreted as "earliest possible BIP32 date"
* if restoring the user has to select where the "wallet words" came from
(e.g. MultiBit HD, Trezor, Mycelium etc)
Users will naturally assume that they can type their "wallet words" (a more
mainstream-friendly term than "seed phrase") into any wallet and with a bit
of fiddling about get their bitcoins back. As wallet developers it is
within our capability to make that happen and I think we're quite close
already.
On 12 March 2015 at 16:47, Mike Hearn <mike@plan99.net> wrote:
> b) "Creation date" is just a short-term hack.
>>
>
> I agree, but we need things to be easy in the short term as well as the
> long term :)
>
> The long term solution is clearly to have the 12 word seed be an
> encryption key for a wallet backup with all associated metadata. We're
> heading in that direction one step at a time. Unfortunately it will take
> time for wallets to start working this way, and all the pieces to fall into
> place. Restoring from the block chain will be a semi regular operation for
> users until then.
>
> WRT version number I have no real strong feelings about this. But
> representing short pieces of binary data as words is so convenient, it
> seems likely that it could be similar to addresses: people find other uses
> for this mechanism beyond just storing a raw private key. Bitcoin addresses
> have versions and that's proven to be useful several times, even though in
> theory an address is "just" a hash of a pubkey.
>
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming The Go Parallel Website,
> sponsored
> by Intel and developed in partnership with Slashdot Media, is your hub for
> all
> things parallel software development, from weekly thought leadership blogs
> to
> news, videos, case studies, tutorials and more. Take a look and join the
> conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
--
Bitcoin Solutions Ltd provides bespoke software and consultancy. Find us at
bitcoin-solutions.co.uk.
--089e0115fe24289e0105111a9bf0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div><div><div><div><div><div>When Jim and I were selectin=
g which combination of HD wallet structures to support we noted the followi=
ng:<br><br></div>*
BIP39 is a good standard list to select from that mandates words that=20
do not look similar to each other, a certain spelling (no English US/UK=20
confusion) and possible foreign language variants provided by experts=20
later<br></div><div>* BIP32 (m/0h/0/0) and BIP44 (m/44h/0h/0h/0/0) allow fo=
r maximum compatibility with other wallets<br></div>*
including a date in the "wallet words" themselves is open to spo=
ofing=20
since the generator cannot be sure the date is correct (local time=20
drift, provided externally by untrusted third party etc)<br></div><div>* a =
timestamp as optional external metadata is useful to reduce sync times in S=
PV<br></div>*
our experience verified that users will very often enter a timestamp=20
incorrectly (locale, fat fingers, bad memory etc) so we opted for=20
"number of days elapsed since Bitcoin genesis block with a modulo 97=
=20
checksum appended" (e.g. 1850/07) to mitigate this<br></div>* if a use=
r=20
has no timestamp then blank is the only alternative (no guessing) which=20
is interpreted as "earliest possible BIP32 date"<br></div>* if re=
storing the user has to select where the "wallet words" came from=
(e.g. MultiBit HD, Trezor, Mycelium etc)<br><br></div>Users
will naturally assume that they can type their "wallet words" (a=
more=20
mainstream-friendly term than "seed phrase") into any wallet and =
with a=20
bit of fiddling about get their bitcoins back. As wallet developers it=20
is within our capability to make that happen and I think we're quite=20
close already.<div class=3D""><div id=3D":1py" class=3D"" tabindex=3D"0"><i=
mg class=3D"" src=3D"https://ssl.gstatic.com/ui/v1/icons/mail/images/cleard=
ot.gif"></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quot=
e">On 12 March 2015 at 16:47, Mike Hearn <span dir=3D"ltr"><<a href=3D"m=
ailto:mike@plan99.net" target=3D"_blank">mike@plan99.net</a>></span> wro=
te:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-=
left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_=
extra"><div class=3D"gmail_quote"><span class=3D""><blockquote class=3D"gma=
il_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-lef=
t:1ex"><div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quot=
e"><div>b) "Creation date" is just a short-term hack. <br></div><=
/div></div></div></blockquote><div><br></div></span><div>I agree, but we ne=
ed things to be easy in the short term as well as the long term :)=C2=A0</d=
iv><div><br></div><div>The long term solution is clearly to have the 12 wor=
d seed be an encryption key for a wallet backup with all associated metadat=
a. We're heading in that direction one step at a time. Unfortunately it=
will take time for wallets to start working this way, and all the pieces t=
o fall into place. Restoring from the block chain will be a semi regular op=
eration for users until then.</div><div><br></div><div>WRT version number I=
have no real strong feelings about this. But representing short pieces of =
binary data as words is so convenient, it seems likely that it could be sim=
ilar to addresses: people find other uses for this mechanism beyond just st=
oring a raw private key. Bitcoin addresses have versions and that's pro=
ven to be useful several times, even though in theory an address is "j=
ust" a hash of a pubkey.</div></div></div></div>
<br>-----------------------------------------------------------------------=
-------<br>
Dive into the World of Parallel Programming The Go Parallel Website, sponso=
red<br>
by Intel and developed in partnership with Slashdot Media, is your hub for =
all<br>
things parallel software development, from weekly thought leadership blogs =
to<br>
news, videos, case studies, tutorials and more. Take a look and join the<br=
>
conversation now. <a href=3D"http://goparallel.sourceforge.net/" target=3D"=
_blank">http://goparallel.sourceforge.net/</a><br>_________________________=
______________________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-develo=
pment@lists.sourceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment</a><br>
<br></blockquote></div><br><br clear=3D"all"><br>-- <br><div class=3D"gmail=
_signature"><div dir=3D"ltr"><div>Bitcoin Solutions Ltd provides bespoke so=
ftware and consultancy. Find us at <a href=3D"http://bitcoin-solutions.co.u=
k" target=3D"_blank">bitcoin-solutions.co.uk</a>.<br></div></div></div>
</div></div>
--089e0115fe24289e0105111a9bf0--
|