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
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
|
Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
helo=mx.sourceforge.net)
by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
(envelope-from <tamas@bitsofproof.com>) id 1WXWZQ-0003rN-Kd
for bitcoin-development@lists.sourceforge.net;
Tue, 08 Apr 2014 14:00:13 +0000
X-ACL-Warn:
Received: from wp059.webpack.hosteurope.de ([80.237.132.66])
by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256)
(Exim 4.76) id 1WXWZN-0004zU-LF
for bitcoin-development@lists.sourceforge.net;
Tue, 08 Apr 2014 14:00:12 +0000
Received: from [37.143.74.116] (helo=[192.168.2.2]); authenticated
by wp059.webpack.hosteurope.de running ExIM with esmtpsa
(TLS1.0:RSA_AES_128_CBC_SHA1:16)
id 1WXWZH-0005Pw-5O; Tue, 08 Apr 2014 16:00:03 +0200
Content-Type: multipart/signed;
boundary="Apple-Mail=_96CA6582-346A-47D2-A1A9-F1856A2B561F";
protocol="application/pgp-signature"; micalg=pgp-sha1
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
From: Tamas Blummer <tamas@bitsofproof.com>
In-Reply-To: <CAPg+sBguSQ8dk1xXKinX+ez4BmdM3sz-huruuhD6NCTsp0kRBQ@mail.gmail.com>
Date: Tue, 8 Apr 2014 16:00:14 +0200
Message-Id: <41F77B0F-FCC5-4614-A435-7B44257F7A7C@bitsofproof.com>
References: <CANEZrP2hbBVGqytmXR1rAcVama4ONnR586Se-Ch=dsxOzy2O4w@mail.gmail.com>
<F2C8C044-EF92-4CCE-9235-28CA7FCE3526@bitsofproof.com>
<CAJHLa0PPAsBLgsy0vgPpUp=UzeR_fWUEzFb5+xtmODEk4MGPVQ@mail.gmail.com>
<CAJfRnm7V6fgcj=TMfa2ZTYWOKtE5aoUT1xnVtKUSyriB=6cagQ@mail.gmail.com>
<CAPg+sBjwf1TcK1CGKVKFzYbV-78j8t-pav7=PEgG7Yqi6-yE7A@mail.gmail.com>
<53344FF8.7030204@gk2.sk>
<CAPg+sBhbx5vy_hewAkFPaiXHzSMNH0qLhEYGjPmQMjR5StP-tw@mail.gmail.com>
<CAJna-Hi0JnrF2_rUx0rGkdnsuCoaD01e3Gobpn+QqbL=D1Uivg@mail.gmail.com>
<CAJna-HirtsGLfAhfUf9dAYEGWo6g=o=eAU187c2pdW8vDFGkPw@mail.gmail.com>
<CAPg+sBg8wDH9yTUoyhRbuzVtbD8hGxya8tOnV4pMToHy3gLrzw@mail.gmail.com>
<CAJna-HiN_1KQmpDJFFX6mGvM63RC0xwXxvfuorpihnzYf4=fsQ@mail.gmail.com>
<CAJna-HgfpyHX_0AHwt1Hkj0qhD_-xOcpxsZ9KXq=7CPgwse1hA@mail.gmail.com>
<CAPg+sBguSQ8dk1xXKinX+ez4BmdM3sz-huruuhD6NCTsp0kRBQ@mail.gmail.com>
To: Pieter Wuille <pieter.wuille@gmail.com>
X-Mailer: Apple Mail (2.1874)
X-bounce-key: webpack.hosteurope.de; tamas@bitsofproof.com; 1396965609;
6448a492;
X-Spam-Score: 1.0 (+)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
1.0 HTML_MESSAGE BODY: HTML included in message
X-Headers-End: 1WXWZN-0004zU-LF
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] New BIP32 structure
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: Tue, 08 Apr 2014 14:00:16 -0000
--Apple-Mail=_96CA6582-346A-47D2-A1A9-F1856A2B561F
Content-Type: multipart/alternative;
boundary="Apple-Mail=_F21F128D-DD75-43EF-8086-F0C23B5651C2"
--Apple-Mail=_F21F128D-DD75-43EF-8086-F0C23B5651C2
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=windows-1252
Pieter,
your suggestion has charm since =93Bitcoin seed=94 would even not need=20=
a global dictionary like the interpretation of the first level, since it =
would be self describing.
Regards,
Tamas Blummer
http://bitsofproof.com
On 08.04.2014, at 15:53, Pieter Wuille <pieter.wuille@gmail.com> wrote:
> I see the cause of our disagreement now.
>=20
> You actually want to share a single BIP32 tree across different
> currency types, but do it in a way that guarantees that they never use
> the same keys.
>=20
> I would have expected that different chains would use independent
> chains, and have serializations encode which chain they belong to.
>=20
> Let me offer an alternative suggestion, which is compatible with the
> original default BIP32 structure:
> * You can use one seed across different chains, but the master nodes
> are separate.
> * To derive the master node from the seed, the key string "Bitcoin
> seed" is replaced by something chain-specific.
> * Every encoded node (including master nodes) has a chain-specific
> serialization magic.
>=20
> This is in practice almost the same as your suggestion, except that
> the m/cointype' in m/cointype'/account'/change/n is replaced by
> different masters. The only disadvantage I see is that you do not have
> a way to encode the "super master" that is the parent of all
> chain-specific masters. You can - and with the same security
> properties - encode the seed, though.
>=20
> --=20
> Pieter
>=20
>=20
> On Tue, Apr 8, 2014 at 3:43 PM, slush <slush@centrum.cz> wrote:
>> tl;dr;
>>=20
>> It is dangerous to expect that other seed than "xprv" does not =
contain
>> bitcoins or that "xprv" contains only bitcoins, because technically =
are both
>> situations possible. It is still safer to do the lookup; the magic =
itself is
>> ambiguous.
>>=20
>> Marek
>>=20
>> On Tue, Apr 8, 2014 at 3:40 PM, slush <slush@centrum.cz> wrote:
>>>=20
>>>=20
>>> Serialization magic of bip32 seed is in my opinion completely =
unnecessary.
>>> Most of software does not care about it anyway; You can use =
xprv/xpub pair
>>> for main net, testnet, litecoin, dogecoin, whatevercoin.
>>>=20
>>> Instead using the same seed (xprv) and then separate the chains =
*inside*
>>> the bip32 path seems more useful to me.
>>>=20
>>> Marek
>>=20
>>=20
>=20
> =
--------------------------------------------------------------------------=
----
> Put Bad Developers to Shame
> Dominate Development with Jenkins Continuous Integration
> Continuously Automate Build, Test & Deployment=20
> Start a new project now. Try Jenkins in the cloud.
> http://p.sf.net/sfu/13600_Cloudbees
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>=20
--Apple-Mail=_F21F128D-DD75-43EF-8086-F0C23B5651C2
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=windows-1252
<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dwindows-1252"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: =
after-white-space;">Pieter,<div><br></div><div>your suggestion has charm =
since =93Bitcoin seed=94 would even not need </div><div>a global =
dictionary like the interpretation of the first level, since it would be =
self describing.</div><div><div apple-content-edited=3D"true"><br =
style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; text-align: -webkit-auto; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: =
2;"><span style=3D"color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; =
widows: 2; float: none; display: inline !important;">Regards,</span><br =
style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; text-align: -webkit-auto; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: =
2;"><br style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; text-align: -webkit-auto; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: =
2;"><span style=3D"color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; =
widows: 2; float: none; display: inline !important;">Tamas =
Blummer</span><br style=3D"color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; =
widows: 2;"><span style=3D"color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
0px;"><span style=3D"color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; =
widows: 2; float: none; display: inline !important;"><a =
href=3D"http://bitsofproof.com">http://bitsofproof.com</a></span>
</span></div>
<br><div><div>On 08.04.2014, at 15:53, Pieter Wuille <<a =
href=3D"mailto:pieter.wuille@gmail.com">pieter.wuille@gmail.com</a>> =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite">I see the cause of our disagreement now.<br><br>You =
actually want to share a single BIP32 tree across different<br>currency =
types, but do it in a way that guarantees that they never use<br>the =
same keys.<br><br>I would have expected that different chains would use =
independent<br>chains, and have serializations encode which chain they =
belong to.<br><br>Let me offer an alternative suggestion, which is =
compatible with the<br>original default BIP32 structure:<br>* You can =
use one seed across different chains, but the master nodes<br>are =
separate.<br>* To derive the master node from the seed, the key string =
"Bitcoin<br>seed" is replaced by something chain-specific.<br>* Every =
encoded node (including master nodes) has a =
chain-specific<br>serialization magic.<br><br>This is in practice almost =
the same as your suggestion, except that<br>the m/cointype' in =
m/cointype'/account'/change/n is replaced by<br>different masters. The =
only disadvantage I see is that you do not have<br>a way to encode the =
"super master" that is the parent of all<br>chain-specific masters. You =
can - and with the same security<br>properties - encode the seed, =
though.<br><br>-- <br>Pieter<br><br><br>On Tue, Apr 8, 2014 at 3:43 PM, =
slush <<a href=3D"mailto:slush@centrum.cz">slush@centrum.cz</a>> =
wrote:<br><blockquote type=3D"cite">tl;dr;<br><br>It is dangerous to =
expect that other seed than "xprv" does not contain<br>bitcoins or that =
"xprv" contains only bitcoins, because technically are =
both<br>situations possible. It is still safer to do the lookup; the =
magic itself is<br>ambiguous.<br><br>Marek<br><br>On Tue, Apr 8, 2014 at =
3:40 PM, slush <<a =
href=3D"mailto:slush@centrum.cz">slush@centrum.cz</a>> =
wrote:<br><blockquote type=3D"cite"><br><br>Serialization magic of bip32 =
seed is in my opinion completely unnecessary.<br>Most of software does =
not care about it anyway; You can use xprv/xpub pair<br>for main net, =
testnet, litecoin, dogecoin, whatevercoin.<br><br>Instead using the same =
seed (xprv) and then separate the chains *inside*<br>the bip32 path =
seems more useful to =
me.<br><br>Marek<br></blockquote><br><br></blockquote><br>----------------=
--------------------------------------------------------------<br>Put =
Bad Developers to Shame<br>Dominate Development with Jenkins Continuous =
Integration<br>Continuously Automate Build, Test & Deployment =
<br>Start a new project now. Try Jenkins in the cloud.<br><a =
href=3D"http://p.sf.net/sfu/13600_Cloudbees">http://p.sf.net/sfu/13600_Clo=
udbees</a><br>_______________________________________________<br>Bitcoin-d=
evelopment mailing =
list<br>Bitcoin-development@lists.sourceforge.net<br>https://lists.sourcef=
orge.net/lists/listinfo/bitcoin-development<br><br></blockquote></div><br>=
</div></body></html>=
--Apple-Mail=_F21F128D-DD75-43EF-8086-F0C23B5651C2--
--Apple-Mail=_96CA6582-346A-47D2-A1A9-F1856A2B561F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=signature.asc
Content-Type: application/pgp-signature;
name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
iQEcBAEBAgAGBQJTRADuAAoJEPZykcUXcTkc3fEH/3mUgcsmIJy96qDmQG5o8l6k
FB983TjpvUlSK7mVN/3VmR1R8bqT06TWrlXU6tj6T0kRJm79JBfxrrVHEDpoY4Cv
42Ag/SlJmw2MSwl7RirHPWyfw/07uEM1TnCtHUh04ljY75NeTsbi0rCqjJjn+mfP
9bBNTduu+9+qCf32bu85LODh/Ha0XBb83hsqR6y6QfxD2weiKGZj3kAVrmW8/T/3
rWHzADrHX5bUsLA5tpyCZpD1mxUG4d0K0LyHw0h3HkiW86yb+AyzzGdQKQHxHQyG
zGTLAliuym6p9m19MY8lWBoJr2xdfjthpupPdUdPOgVId/P5K5EXIwyrm32R42s=
=gD8X
-----END PGP SIGNATURE-----
--Apple-Mail=_96CA6582-346A-47D2-A1A9-F1856A2B561F--
|