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'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' and m/49' 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' and m/49' 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' 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'= =20 there is no way to know whether an xpub is from m/44' or m/49'<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--