From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1WSxOX-0001kd-PD for bitcoin-development@lists.sourceforge.net; Wed, 26 Mar 2014 23:38:05 +0000 Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of m.gmane.org designates 80.91.229.3 as permitted sender) client-ip=80.91.229.3; envelope-from=gcbd-bitcoin-development@m.gmane.org; helo=plane.gmane.org; Received: from plane.gmane.org ([80.91.229.3]) by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76) id 1WSxOV-0005mA-QB for bitcoin-development@lists.sourceforge.net; Wed, 26 Mar 2014 23:38:05 +0000 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WSxOP-0000Ks-5Z for bitcoin-development@lists.sourceforge.net; Thu, 27 Mar 2014 00:37:57 +0100 Received: from f053008027.adsl.alicedsl.de ([78.53.8.27]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 27 Mar 2014 00:37:57 +0100 Received: from andreas by f053008027.adsl.alicedsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 27 Mar 2014 00:37:57 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bitcoin-development@lists.sourceforge.net From: Andreas Schildbach Date: Thu, 27 Mar 2014 00:37:46 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: f053008027.adsl.alicedsl.de User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 In-Reply-To: X-Enigmail-Version: 1.5.2 X-Spam-Score: -0.8 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [80.91.229.3 listed in list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.1 DKIM_ADSP_ALL No valid author signature, domain signs all mail -0.0 SPF_PASS SPF: sender matches SPF record -0.4 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain X-Headers-End: 1WSxOV-0005mA-QB Subject: Re: [Bitcoin-development] New BIP32 structure X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Mar 2014 23:38:05 -0000 Thanks for starting the discussion on finding a better structure. For me, the most important thing is either we're 100% interoperable or 0%. There should not be anything inbetween, as users will delete seeds without knowing there is still money in them on another implementation. I heard from multiple sources that using this standard some wallets will only see a subset of the addresses/keys of some other wallets. Implementation differences can always happen (and should addresses as bugs), but I think its unacceptable that this source of issues is by design. I suggest we agree on an even simpler least common denominator and wallets that want to implement some feature on top of that can do but are encouraged to pick a totally different "cointype". I guess that would mean removing reserved and account. I'm still thinking it might be a good idea to have a separate chain for "refunds". Refunds will be rarely used and thus need a much slower moving window than receiving addresses or change. On 03/26/2014 09:49 PM, Mike Hearn wrote: > Myself, Thomas V (Electrum) and Marek (Trezor) got together to make sure > our BIP32 wallet structures would be compatible - and I discovered that > only I was planning to use the default structure. > > Because I'm hopeful that we can get a lot of interoperability between > wallets with regards to importing 12-words paper wallets, we > brainstormed to find a structure acceptable to everyone and ended up with: > > /m/cointype/reserved'/account'/change/n > > The extra levels require some explanation: > > * cointype: This is zero for Bitcoin. This is here to support two > things, one is supporting alt coins based off the same root seed. > Right now nobody seemed very bothered about alt coins but sometimes > feature requests do come in for this. Arguably there is no need and > alt coins could just use the same keys as Bitcoin, but it may help > avoid confusion if they don't. > > More usefully, cointype can distinguish between keys intended for > things like multisig outputs, e.g. for watchdog services. This means > if your wallet does not know about the extra protocol layers > involved in this, it can still import the "raw" money and it will > just ignore/not see the keys used in more complex transactions. > > * reserved is for "other stuff". I actually don't recall why we ended > up with this. It may have been intended to split out multisig > outputs etc from cointype. Marek, Thomas? > > * account is for keeping essentially wallets-within-a-wallet to avoid > mixing of coins. If you want that. > > * change is 0 for receiving addresses, 1 for change addresses. > > * n is the actual key index > > For bitcoinj we're targeting a deliberately limited feature set for hdw > v1 so I would just set the first three values all to zero and that is a > perfectly fine way to be compatible. > > The goal here is that the same seed can be written down once, and meet > all the users needs, whilst still allowing some drift between what > wallets support. > > Pieter made the I think valid point that you can't really encode how > keys are meant to be used into just an HDW hierarchy and normally you'd > need some metadata as well. However, I feel interop between wallets is > more important than arriving at the most perfect possible arrangement, > which feels a little like bikeshedding, so I'm happy to just go with the > flow on this one. > > > > ------------------------------------------------------------------------------ > > > > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development >