mirror of
https://github.com/seigler/dips
synced 2025-07-26 17:26:13 +00:00
70 lines
2.8 KiB
Markdown
70 lines
2.8 KiB
Markdown
<pre>
|
||
DIP: 0009
|
||
Title: Feature Derivation Paths
|
||
Author(s): Samuel Westrich
|
||
Special-Thanks:
|
||
Status: Proposed
|
||
Type: Informational
|
||
Created: 2019-03-12
|
||
License: MIT License
|
||
</pre>
|
||
|
||
## Table of Contents
|
||
|
||
1. [Abstract](#abstract)
|
||
1. [Motivation](#motivation)
|
||
1. [Prior Work](#prior-work)
|
||
1. [Feature Path Level](#feature-path-level)
|
||
1. [Copyright](#copyright)
|
||
|
||
## Abstract
|
||
|
||
This DIP introduces reliable derivation paths for various coin-specific features.
|
||
|
||
## Motivation
|
||
|
||
Currently there is much ambiguity between different coin paths, BIP43 tried to solve this with the ‘purpose’ hardened derivation. With BIP44 we saw derivation paths such as `44’/5’/0’` which addresses coin-specific derivation paths. However, these derivation paths had an account directly after the coin type which made it unusable for coin-specific features other than standard transactions.
|
||
|
||
## Prior work
|
||
|
||
- [BIP-0043 - Purpose Field for Deterministic Wallets](https://github.com/bitcoin/bips/blob/master/bip-0043.mediawiki)
|
||
- [BIP-0044 - Multi-Account Hierarchy for Deterministic Wallets](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki)
|
||
|
||
## Feature path level
|
||
|
||
We define the following minimum 3 levels in BIP32 path:
|
||
|
||
`m / purpose' / coin_type' / feature' / *`
|
||
|
||
An apostrophe in the path indicates that BIP32 hardened derivation is used.
|
||
|
||
Each level has a special meaning, described in the sections below.
|
||
|
||
### Purpose
|
||
|
||
Purpose is a constant set to `9'` (or 0x80000009) following the [BIP43 recommendation](https://github.com/bitcoin/bips/blob/master/bip-0043.mediawiki#purpose). It indicates that the subtree of this node is used according to this specification.
|
||
|
||
Hardened derivation is used at this level.
|
||
|
||
### Coin type
|
||
|
||
Coin type in this DIP is the same as defined by [BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#coin-type) (a constant, set for each cryptocoin). For example, Dash has a registered coin type of `5'` (or 0x80000005).
|
||
|
||
This DIP is not a central directory for the registered coin types. Please visit the full list of registered coin types maintained by SatoshiLabs for any other coins:
|
||
|
||
[SLIP-0044 : Registered coin types for BIP-0044](https://github.com/satoshilabs/slips/blob/master/slip-0044.md)
|
||
|
||
Hardened derivation is used at this level.
|
||
|
||
### Feature
|
||
|
||
This level splits the coin’s key space based on coin-specific features. For example, it may be desirable to maintain mixed funds in a path that is isolated from non-mixed funds. Other use cases could include using a specific path for identity or other non-financial keys.
|
||
|
||
Hardened derivation is used at this level.
|
||
|
||
Feature derivation paths may be defined based on future DIPs. A list of registered features can be found [here](dip-0009/assignments.md).
|
||
|
||
|
||
## Copyright
|
||
|
||
Copyright (c) 2019 Dash Core Group, Inc. [Licensed under the MIT License](https://opensource.org/licenses/MIT)
|