Hi Guys,
I would like to propose an updated notation format for multi-account wallet structures that allows more of a tree structure to be formed with multiple derivative account layers. I see this being quite necessary for large organisations who want to fully integrate Bitcoin into their daily business functions rather than simply integrating it at a payment gateway layer.
Thank you,
Brendan
BUIP: XXX
Layer: Applications
Title: Multi-order Hierarchy for Deterministic Wallets
Author: Brendan Lee <brendanjlee@protonmail.com>
Comments-Summary:
Comments-URI:
Status: Proposed
Type: Standards Track
Created: 2018-03-29
Table of Contents
Abstract
This BIP builds on the notation of the multi wallet format described in BIP44 to enable the building of multi-layered hierarchical wallet trees.
This BIP is a particular application of BIP43.
Motivation
The hierarchy proposed in this paper gives corporations and other sophisticated users of Cryptocurrency a simple format to use for referencing accounts within a multi-order wallet tree structure enabling a single master key to be used as the seed key to build an account hierarchy with multiple layers and branches. This approach allows each branch to be hidden from each other branch while giving the master private key total visibility and control of the whole system.
Multi order derivative Path
The standard builds upon standard notation of derivative wallet paths allowing this notation format to be applied to any cryptocurrency.
First order derivative
The derivative path to a wallet deterministically generated directly from a master key is described as follows:
m / purpose' / coin_type' / account' / change / address_index
As with BIP44, apostrophe in the path indicates that BIP32 hardened derivation is used.
Second order derivative
The derivative path to a wallet deterministically generated directly from a first order derivative of a master key is described as follows:
m / purpose' / coin_type' / account'(account’) / change / address_index
The second order account address is found by performing a hardened derivation of the first order account key.
Nth order derivative
The derivative path to a wallet deterministically generated from an (n-1)th order derivative of the master key is described as follows:
m / purpose' / coin_type' / account'(account_1’(… (account_n-1’(account_n))…)) / change / address_index
The nth order account address is found by performing a hardened derivation of the n-1th order account key.
Examples
coin account chain address path
Bitcoin Cash first external first m / 44’ / 145’ / 0' / 0 / 0
Bitcoin Cash third change fourth m / 44’ / 145’ / 2' / 1 / 3
Bitcoin Cash First(first) external first m / 44’ / 145’ / 0'(0’) / 0 / 0
Bitcoin Cash Third(fifth) change fourth m / 44’ / 145’ / 2'(4’) / 1 / 3
Bitcoin Cash First(second(third)) external first m / 44’ / 145’ / 0'(1’(2’)) / 0 / 0
Bitcoin Cash First(second(third)) change third m / 44’ / 145’ / 0'(1’(2’)) / 1 / 2
Bitcoin Cash First(second(third(fourth(fifth)))) external first m / 44’ / 145’ / 0'(1’(2’(3’(4)))) / 0 / 0
Compatible wallets
I would like to propose an updated notation format for multi-account wallet structures that allows more of a tree structure to be formed with multiple derivative account layers. I see this being quite necessary for large organisations who want to fully integrate Bitcoin into their daily business functions rather than simply integrating it at a payment gateway layer.
Thank you,
Brendan
BUIP: XXX
Layer: Applications
Title: Multi-order Hierarchy for Deterministic Wallets
Author: Brendan Lee <brendanjlee@protonmail.com>
Comments-Summary:
Comments-URI:
Status: Proposed
Type: Standards Track
Created: 2018-03-29
Table of Contents
- Abstract
- Motivation
- Multi order derivative path
- First order derivative
- Second order derivative
- Nth order derivative
- Examples
- Compatible wallets
- Reference
This BIP builds on the notation of the multi wallet format described in BIP44 to enable the building of multi-layered hierarchical wallet trees.
This BIP is a particular application of BIP43.
Motivation
The hierarchy proposed in this paper gives corporations and other sophisticated users of Cryptocurrency a simple format to use for referencing accounts within a multi-order wallet tree structure enabling a single master key to be used as the seed key to build an account hierarchy with multiple layers and branches. This approach allows each branch to be hidden from each other branch while giving the master private key total visibility and control of the whole system.
Multi order derivative Path
The standard builds upon standard notation of derivative wallet paths allowing this notation format to be applied to any cryptocurrency.
First order derivative
The derivative path to a wallet deterministically generated directly from a master key is described as follows:
m / purpose' / coin_type' / account' / change / address_index
As with BIP44, apostrophe in the path indicates that BIP32 hardened derivation is used.
Second order derivative
The derivative path to a wallet deterministically generated directly from a first order derivative of a master key is described as follows:
m / purpose' / coin_type' / account'(account’) / change / address_index
The second order account address is found by performing a hardened derivation of the first order account key.
Nth order derivative
The derivative path to a wallet deterministically generated from an (n-1)th order derivative of the master key is described as follows:
m / purpose' / coin_type' / account'(account_1’(… (account_n-1’(account_n))…)) / change / address_index
The nth order account address is found by performing a hardened derivation of the n-1th order account key.
Examples
coin account chain address path
Bitcoin Cash first external first m / 44’ / 145’ / 0' / 0 / 0
Bitcoin Cash third change fourth m / 44’ / 145’ / 2' / 1 / 3
Bitcoin Cash First(first) external first m / 44’ / 145’ / 0'(0’) / 0 / 0
Bitcoin Cash Third(fifth) change fourth m / 44’ / 145’ / 2'(4’) / 1 / 3
Bitcoin Cash First(second(third)) external first m / 44’ / 145’ / 0'(1’(2’)) / 0 / 0
Bitcoin Cash First(second(third)) change third m / 44’ / 145’ / 0'(1’(2’)) / 1 / 2
Bitcoin Cash First(second(third(fourth(fifth)))) external first m / 44’ / 145’ / 0'(1’(2’(3’(4)))) / 0 / 0
Compatible wallets
- None yet
Last edited: