<oembed><type>rich</type><version>1.0</version><author_name>npub1xg2m84malu0cfm4444r0kysx4rgk27e75aj6sz6538kw8fcz627qeadsv7</author_name><author_url>https://nostr.ae/npub1xg2m84malu0cfm4444r0kysx4rgk27e75aj6sz6538kw8fcz627qeadsv7</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-03-26&#xA;📝 Original message:Thanks for starting the discussion on finding a better structure.&#xA;&#xA;For me, the most important thing is either we&#39;re 100% interoperable or&#xA;0%. There should not be anything inbetween, as users will delete seeds&#xA;without knowing there is still money in them on another implementation.&#xA;I heard from multiple sources that using this standard some wallets will&#xA;only see a subset of the addresses/keys of some other wallets.&#xA;Implementation differences can always happen (and should addresses as&#xA;bugs), but I think its unacceptable that this source of issues is by design.&#xA;&#xA;I suggest we agree on an even simpler least common denominator and&#xA;wallets that want to implement some feature on top of that can do but&#xA;are encouraged to pick a totally different &#34;cointype&#34;. I guess that&#xA;would mean removing reserved and account.&#xA;&#xA;I&#39;m still thinking it might be a good idea to have a separate chain for&#xA;&#34;refunds&#34;. Refunds will be rarely used and thus need a much slower&#xA;moving window than receiving addresses or change.&#xA;&#xA;&#xA;On 03/26/2014 09:49 PM, Mike Hearn wrote:&#xA;&gt; Myself, Thomas V (Electrum) and Marek (Trezor) got together to make sure&#xA;&gt; our BIP32 wallet structures would be compatible - and I discovered that&#xA;&gt; only I was planning to use the default structure.&#xA;&gt; &#xA;&gt; Because I&#39;m hopeful that we can get a lot of interoperability between&#xA;&gt; wallets with regards to importing 12-words paper wallets, we&#xA;&gt; brainstormed to find a structure acceptable to everyone and ended up with:&#xA;&gt; &#xA;&gt;   /m/cointype/reserved&#39;/account&#39;/change/n&#xA;&gt; &#xA;&gt; The extra levels require some explanation:&#xA;&gt; &#xA;&gt;   * cointype:  This is zero for Bitcoin. This is here to support two&#xA;&gt;     things, one is supporting alt coins based off the same root seed.&#xA;&gt;     Right now nobody seemed very bothered about alt coins but sometimes&#xA;&gt;     feature requests do come in for this. Arguably there is no need and&#xA;&gt;     alt coins could just use the same keys as Bitcoin, but it may help&#xA;&gt;     avoid confusion if they don&#39;t.&#xA;&gt; &#xA;&gt;     More usefully, cointype can distinguish between keys intended for&#xA;&gt;     things like multisig outputs, e.g. for watchdog services. This means&#xA;&gt;     if your wallet does not know about the extra protocol layers&#xA;&gt;     involved in this, it can still import the &#34;raw&#34; money and it will&#xA;&gt;     just ignore/not see the keys used in more complex transactions.&#xA;&gt; &#xA;&gt;   * reserved is for &#34;other stuff&#34;. I actually don&#39;t recall why we ended&#xA;&gt;     up with this. It may have been intended to split out multisig&#xA;&gt;     outputs etc from cointype. Marek, Thomas?&#xA;&gt; &#xA;&gt;   * account is for keeping essentially wallets-within-a-wallet to avoid&#xA;&gt;     mixing of coins. If you want that.&#xA;&gt; &#xA;&gt;   * change is 0 for receiving addresses, 1 for change addresses.&#xA;&gt; &#xA;&gt;   * n is the actual key index&#xA;&gt; &#xA;&gt; For bitcoinj we&#39;re targeting a deliberately limited feature set for hdw&#xA;&gt; v1 so I would just set the first three values all to zero and that is a&#xA;&gt; perfectly fine way to be compatible.&#xA;&gt; &#xA;&gt; The goal here is that the same seed can be written down once, and meet&#xA;&gt; all the users needs, whilst still allowing some drift between what&#xA;&gt; wallets support.&#xA;&gt; &#xA;&gt; Pieter made the I think valid point that you can&#39;t really encode how&#xA;&gt; keys are meant to be used into just an HDW hierarchy and normally you&#39;d&#xA;&gt; need some metadata as well. However, I feel interop between wallets is&#xA;&gt; more important than arriving at the most perfect possible arrangement,&#xA;&gt; which feels a little like bikeshedding, so I&#39;m happy to just go with the&#xA;&gt; flow on this one.&#xA;&gt; &#xA;&gt; &#xA;&gt; &#xA;&gt; ------------------------------------------------------------------------------&#xA;&gt; &#xA;&gt; &#xA;&gt; &#xA;&gt; _______________________________________________&#xA;&gt; Bitcoin-development mailing list&#xA;&gt; Bitcoin-development at lists.sourceforge.net&#xA;&gt; https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#xA;&gt;</html></oembed>