LearnBitcoin

Bitcoin Dev Archive 2017

BIP proposal draft: BIP43 "purpose" allocation for Ethereum

2 messages, 12 to 14 Apr 2017. Started by Nick Johnson.

Nick Johnson, Tom Zander

Permalink Original thread on gnusha.org

Nick Johnson permalink original
<pre>
  BIP: bip-nickjohnson-ethereum-purpose
  Layer: Applications
  Title: Ethereum purpose allocation for Deterministic Wallets
  Author: Nick Johnson <nick@ethereum•org>
  Status: Proposed
  Type: Standards Track
  Created: 2017-04-12
</pre>

==Abstract==

This BIP defines a logical hierarchy for deterministic wallets on the Ethereum blockchain based on an algorithm described in BIP-0032 (BIP32 from now on) and purpose scheme described in BIP-0043 (BIP43 from now on).

This BIP is a particular application of BIP43.

==Motivation==

Because Ethereum is based on account balances rather than UTXO, the hierarchy defined by BIP44 is poorly suited. As a result, several competing derivation path strategies have sprung up for deterministic wallets, resulting in inter-client incompatibility. This BIP seeks to provide a path to standardise this in a fashion better suited to Ethereum's unique requirements.

==Path levels==

We define the following 2 levels in BIP32 path:

<pre> m / purpose' / subpurpose' / * </pre>

Apostrophe in the path indicates that BIP32 hardened derivation is used.

Each level has a special meaning, described in the chapters below.

===Purpose===

Purpose is a constant set to the hardened value of the BIP number assigned to this BIP (equivalently, the BIP number, bitwise ORed with 0x80000000) following the BIP43 recommendation. It indicates that the subtree of this node is used according to this specification.

Hardened derivation is used at this level.

===Subpurpose=== Subpurpose is set to the EIP number specifying the remainder of the BIP32 derivation path. This permits new Ethereum-focused applications of deterministic wallets without needing to interface with the BIP process.

Hardened derivation is used at this level.

==Reference== * [[bip-0032.mediawiki|BIP32 - Hierarchical Deterministic Wallets]] * [[bip-0043.mediawiki|BIP43 - Purpose Field for Deterministic Wallets]]

Tom Zander in reply to Nick Johnson permalink original

Thinking about this a bit, I support this proposal for a BIP. This is not Bitcoin, but address types are bound to meet in meat-space and it would be good to have a central place where this is defined.

I would very much appreciate someone that worked on BIP32/BIP43 itself to comment on the details.

Quoting bip 43;

"We encourage different schemes to apply for assigning a separate BIP number and use the same number for purpose field, so addresses won't be generated from overlapping BIP32 spaces."

On Wednesday, 12 April 2017 12:02:37 CEST Nick Johnson via bitcoin-dev wrote:

Quoted text (60 lines)
> <pre>
>   BIP: bip-nickjohnson-ethereum-purpose
>   Layer: Applications
>   Title: Ethereum purpose allocation for Deterministic Wallets
>   Author: Nick Johnson <nick@ethereum•org>
>   Status: Proposed
>   Type: Standards Track
>   Created: 2017-04-12
> </pre>
>
> ==Abstract==
>
> This BIP defines a logical hierarchy for deterministic wallets on the
> Ethereum blockchain based on an algorithm described in BIP-0032 (BIP32
> from now on) and purpose scheme described in BIP-0043 (BIP43 from now
> on).
>
> This BIP is a particular application of BIP43.
>
> ==Motivation==
>
> Because Ethereum is based on account balances rather than UTXO, the
> hierarchy defined by BIP44 is poorly suited. As a result, several
> competing derivation path strategies have sprung up for deterministic
> wallets, resulting in inter-client incompatibility. This BIP seeks to
> provide a path to standardise this in a fashion better suited to
> Ethereum's unique requirements.
>
> ==Path levels==
>
> We define the following 2 levels in BIP32 path:
>
> <pre>
> m / purpose' / subpurpose' / *
> </pre>
>
> Apostrophe in the path indicates that BIP32 hardened derivation is used.
>
> Each level has a special meaning, described in the chapters below.
>
> ===Purpose===
>
> Purpose is a constant set to the hardened value of the BIP number assigned
> to this BIP (equivalently, the BIP number, bitwise ORed with 0x80000000)
> following the BIP43 recommendation.
> It indicates that the subtree of this node is used according to this
> specification.
>
> Hardened derivation is used at this level.
>
> ===Subpurpose===
> Subpurpose is set to the EIP number specifying the remainder of the BIP32
> derivation path. This permits new Ethereum-focused applications of
> deterministic wallets without needing to interface with the BIP process.
>
> Hardened derivation is used at this level.
>
> ==Reference== * [[bip-0032.mediawiki|BIP32 - Hierarchical Deterministic
> Wallets]] * [[bip-0043.mediawiki|BIP43 - Purpose Field for Deterministic
> Wallets]]