forked from Open-Transactions/rfc
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Draft Bitcoin Improvement Proposals for voting pool HD wallets
These BIPS were submitted to the bitcoin-development mailing list in order to obtain numbering for the purposes of a BIP-43 purpose code. Since there was no response on the mailing list, and therefore no number assigned, the purpose codes have been changed to ASCII constants. These BIPS are still published for informational purposes, even if they never are accepted into the BIP system.
- Loading branch information
1 parent
8a72043
commit 4c42eb8
Showing
2 changed files
with
139 additions
and
0 deletions.
There are no files selected for viewing
68 changes: 68 additions & 0 deletions
68
...raft-Hierarchy for Colored Voting Pool Deterministic Multisig Wallets.mediawiki
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
<pre> | ||
Title: Hierarchy for Colored Voting Pool Deterministic Multisig Wallets | ||
Authors: Justus Ranvier <[email protected]> | ||
Jimmy Song <[email protected]> | ||
Status: Draft | ||
Type: Informational | ||
Created: 2014-08-11 | ||
</pre> | ||
|
||
==Abstract== | ||
|
||
This BIP defines a logical hierarchy for colored coin voting pool deterministic multisig wallets 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 and is based on BIP44. | ||
|
||
==Motivation== | ||
|
||
The hierarchy proposed in this paper allows the handling of multiple color definitions from a single seed. | ||
|
||
==Path levels== | ||
|
||
We define the following 8 levels in BIP32 path: | ||
|
||
<pre> | ||
m / purpose' / series' / (5 color definition levels) / address_index | ||
</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 VPC01 (or 0x56433031) 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. | ||
|
||
===Color Definition=== | ||
|
||
Index values which can be applied to a BIP32 node are limited to 4 bytes (32 bits). | ||
|
||
Since this is not sufficient to identify color definitions without a risk of collision, multiple levels are used. | ||
|
||
Color definitions are first shortened to 20 bytes using the Bitcoin hash160 function. | ||
|
||
The resulting 20 bytes are split into five groups in little endian format, and where each group is used as the seed for the five levels of color definition levels | ||
|
||
Public derivation is used at these levels, even when the index exceeds 2^31. | ||
|
||
===Index=== | ||
|
||
Public/private keypairs are numbered from index 0 in sequentially increasing manner. This number is used as child index in BIP32 derivation. | ||
|
||
Public keys obtained at this level of the heirarchy are used to construct multisig deposit scripts, using a schema that is shared between the members as an out-of-band contract. | ||
|
||
Public derivation is used at this level. | ||
|
||
==Compatible wallets== | ||
|
||
* [[https://github.com/conformal/btcd|btcd]] is the reference Bitcoin wallet for voting pools. | ||
==Reference== | ||
|
||
* [[bip-0032.mediawiki|BIP32 - Hierarchical Deterministic Wallets]] | ||
* [[bip-0043.mediawiki|BIP43 - Purpose Field for Deterministic Wallets]] | ||
* [[bip-0044.mediawiki|BIP44 - Multi-Account Hierarchy for Deterministic Wallets]] | ||
* [[bip-TBD.mediawiki|BIP44 - Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets]] | ||
* [[http://opentransactions.org/wiki/index.php?title=Voting_Pools|Voting Pools]] |
71 changes: 71 additions & 0 deletions
71
...-Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets.mediawiki
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
<pre> | ||
Title: Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets | ||
Authors: Justus Ranvier <[email protected]> | ||
Jimmy Song <[email protected]> | ||
Status: Draft | ||
Type: Informational | ||
Created: 2014-08-11 | ||
</pre> | ||
|
||
==Abstract== | ||
|
||
This BIP defines a logical hierarchy for non-colored voting pool deterministic multisig wallets 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 and is based on BIP44. | ||
|
||
==Motivation== | ||
|
||
The hierarchy proposed in this paper allows the handling of multiple coins and multiple series from a single seed. | ||
|
||
==Path levels== | ||
|
||
We define the following 4 levels in BIP32 path: | ||
|
||
<pre> | ||
m / purpose' / coin_type' / series' / address_index | ||
</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 VPB01 (or 0x56503031). It indicates that the subtree of this node is used according to this specification. | ||
|
||
Hardened derivation is used at this level. | ||
|
||
===Coin type=== | ||
|
||
One master node (seed) can be used for unlimited number of independent cryptocoins such as Bitcoin, Litecoin or Namecoin. However, sharing the same space for various cryptocoins has some disadvantages. | ||
|
||
This level creates a separate subtree for every cryptocoin, avoiding reusing addresses across cryptocoins and improving privacy issues. | ||
|
||
Coin type is a constant, set for each cryptocoin. The list of registered coin type constants should be obtained from BIP44. | ||
|
||
Hardened derivation is used at this level. | ||
|
||
===Series=== | ||
|
||
Series are used by voting pools in order to implement FIFO cold storage. By directing deposits into multiple series, the private keys for most of the deposits can be kept offline, and a limited portion can be brought online to process withdrawals. | ||
|
||
Hardened derivation is used at this level. | ||
|
||
===Index=== | ||
|
||
Public/private keypairs are numbered from index 0 in sequentially increasing manner. This number is used as child index in BIP32 derivation. | ||
|
||
Public keys obtained at this level of the heirarchy are used to construct multisig deposit scripts, using a schema that is shared between the members as an out-of-band contract. | ||
|
||
Public derivation is used at this level. | ||
|
||
==Compatible wallets== | ||
|
||
* [[https://github.com/conformal/btcd|btcd]] is the reference Bitcoin wallet for voting pools. | ||
==Reference== | ||
|
||
* [[bip-0032.mediawiki|BIP32 - Hierarchical Deterministic Wallets]] | ||
* [[bip-0043.mediawiki|BIP43 - Purpose Field for Deterministic Wallets]] | ||
* [[bip-0044.mediawiki|BIP44 - Multi-Account Hierarchy for Deterministic Wallets]] | ||
* [[http://opentransactions.org/wiki/index.php?title=Voting_Pools|Voting Pools]] |