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
|
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--
|