diff options
Diffstat (limited to 'bip-0081.mediawiki')
-rw-r--r-- | bip-0081.mediawiki | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/bip-0081.mediawiki b/bip-0081.mediawiki new file mode 100644 index 0000000..ee3e0ac --- /dev/null +++ b/bip-0081.mediawiki @@ -0,0 +1,68 @@ +<pre> + BIP: 81 + Title: Hierarchy for Colored Voting Pool Deterministic Multisig Wallets + Authors: Justus Ranvier <justus@monetas.net> + Jimmy Song <jimmy@monetas.net> + 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 following the BIP43 recommendation to: the ASCII value of "81" with the most signifigant bit set to indicate hardened derivation (0x80000051). 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-0080.mediawiki|BIP44 - Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets]] |