Return-Path: <shiva@blockonomics.co>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 0853EABB
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 30 Aug 2017 07:31:41 +0000 (UTC)
X-Greylist: delayed 00:07:05 by SQLgrey-1.7.6
Received: from blockonomics.co (blockonomics.co [52.10.115.182])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 15E1512A
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 30 Aug 2017 07:31:39 +0000 (UTC)
Received: from mail-ua0-f179.google.com (mail-ua0-f179.google.com
	[209.85.217.179])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by blockonomics.co (Postfix) with ESMTPSA id A71C51F1659
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 30 Aug 2017 07:24:34 +0000 (UTC)
Received: by mail-ua0-f179.google.com with SMTP id 104so16604738uas.1
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 30 Aug 2017 00:24:34 -0700 (PDT)
X-Gm-Message-State: AHYfb5hpVi7rWdfNga9xkGxlF4CmbOcEtxJtk41hbIYjzUN9a8k7CZwa
	Ii6LFtgp3bv2kC24nW6/GNh3OeUKIA==
X-Received: by 10.159.62.206 with SMTP id n14mr293656uaj.190.1504077873529;
	Wed, 30 Aug 2017 00:24:33 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.176.75.9 with HTTP; Wed, 30 Aug 2017 00:24:13 -0700 (PDT)
From: shiva sitamraju <shiva@blockonomics.co>
Date: Wed, 30 Aug 2017 12:54:13 +0530
X-Gmail-Original-Message-ID: <CABuOfuijNyNrdSfCXKySw0Qf7E1db8sgzWYgW9uOg_ZJJbuixA@mail.gmail.com>
Message-ID: <CABuOfuijNyNrdSfCXKySw0Qf7E1db8sgzWYgW9uOg_ZJJbuixA@mail.gmail.com>
To: bitcoin-dev@lists.linuxfoundation.org
Content-Type: multipart/alternative; boundary="089e0820797c5dd84e0557f36bea"
X-Spam-Status: No, score=0.5 required=5.0 tests=HTML_MESSAGE,
	RCVD_IN_SORBS_SPAM,RP_MATCHES_RCVD autolearn=disabled version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
X-Mailman-Approved-At: Wed, 30 Aug 2017 15:17:20 +0000
Subject: [bitcoin-dev] BIP49 Derivation scheme changes
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: Wed, 30 Aug 2017 07:31:41 -0000

--089e0820797c5dd84e0557f36bea
Content-Type: text/plain; charset="UTF-8"

Hi,

I wanted to discuss few changes in BIP49

*- Breaking backwards compatibility *
The BIP talks about breaking this, and  but it really doesn't.  I really
feel it should completely break this. Here is why

What would happen if you recover a wallet  using seed words ?
  1. Since there is no difference in seed words between segwit/non segwit,
the wallet would discover both m/44' and m/49' accounts
  2. Note that we cannot ask the user to choose an account he wants to
operate on (Segwit/Non segwit). This is like asking him the HD derivation
path and a really bad UI
  3. The wallet now has to constantly monitor both m/44' and m/49' accounts
for transactions

Basically we are always stuck with keeping compatibility with older seed
words or always asking the user if the seed words came from segwit/non
segwit wallet !

Here is my suggestion :
1. By default all new wallets will be created as segwit  m/49' without
asking user anything. I think you would agree with me that in future we
want most wallet to be default segwit (unless user chooses a non segwit
from advanced options)!

2. Segwit wallet seed words have a different format which is incompatible
with previous wallet seed words. This  encodes the information that this
wallet is segwit in the seed words itself. We need to define a structure
for this



*- XPUB Derivation*
This is something not addressed in the BIP yet.

1. Right now you can get an xpub balance/transaction history. With m/49'
there is no way to know whether an xpub is from m/44' or m/49'

2. This breaks lots of things. Wallets like electrum/armory/mycelium
<https://blog.trezor.io/using-mycelium-to-watch-your-trezor-accounts-a836dce0b954>support
importing  xpub as a watch only wallet. Also services like blockonomics/
blockchain.info use xpub for displaying balance/generating merchant
addresses

Looking forward to hearing your thoughts

--089e0820797c5dd84e0557f36bea
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi,<br><br></div>I wanted to discuss few changes in B=
IP49 <br><br><b>- Breaking backwards compatibility </b><br><div>The BIP tal=
ks about breaking this, and=C2=A0 but it really doesn&#39;t.=C2=A0 I really=
 feel it should completely break this. Here is why <br><br>What would happe=
n if you recover a wallet=C2=A0 using seed words ?<br></div><div>=C2=A0 1. =
Since there is no difference in seed words between segwit/non segwit, the w=
allet would discover both m/44&#39; and m/49&#39; accounts<br></div><div>=
=C2=A0 2. Note that we cannot ask the user to choose an account he wants to=
=20
operate on (Segwit/Non segwit). This is like asking him the HD=20
derivation path and a really bad UI<br></div><div>=C2=A0 3. The wallet now =
has to constantly monitor both m/44&#39; and m/49&#39; accounts for transac=
tions <br></div><div>=C2=A0=C2=A0 <br>Basically we are always stuck with ke=
eping compatibility with older seed words or always asking the user if the =
seed words came from segwit/non segwit wallet !<br></div><div><br></div><di=
v>Here is my suggestion :<br></div><div>1.
 By default all new wallets will be created as segwit=C2=A0 m/49&#39; witho=
ut=20
asking user anything. I think you would agree with me that in future we wan=
t most wallet to be default segwit (unless user chooses a non segwit=20
from advanced options)!<br><br></div><div>2. Segwit wallet seed words=20
have a different format which is incompatible with previous wallet seed=20
words. This=C2=A0 encodes the information that this wallet is segwit in the=
=20
seed words itself. We need to define a structure for this<br></div><div><br=
></div><div><br><br></div><div><b>- XPUB Derivation</b><br></div><div>This =
is something not addressed in the BIP yet.<br><br></div><div>1.
 Right now you can get an xpub balance/transaction history. With m/49&#39;=
=20
there is no way to know whether an xpub is from m/44&#39; or m/49&#39;<br><=
br></div><div>2. This breaks lots of things. Wallets like electrum/armory/<=
a href=3D"https://blog.trezor.io/using-mycelium-to-watch-your-trezor-accoun=
ts-a836dce0b954" target=3D"_blank">mycelium </a>support importing=C2=A0 xpu=
b as a watch only wallet. Also services like blockonomics/<a href=3D"http:/=
/blockchain.info" target=3D"_blank">blockchain.info</a> use xpub for displa=
ying balance/generating merchant addresses<br><br></div>Looking forward to =
hearing your thoughts</div>

--089e0820797c5dd84e0557f36bea--