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&nbsp;</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 &lt;<a =
href=3D"mailto:pieter.wuille@gmail.com">pieter.wuille@gmail.com</a>&gt; =
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 &lt;<a href=3D"mailto:slush@centrum.cz">slush@centrum.cz</a>&gt; =
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 &lt;<a =
href=3D"mailto:slush@centrum.cz">slush@centrum.cz</a>&gt; =
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 &amp; 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--