mirror of
				https://github.com/bitcoin/bips.git
				synced 2025-10-27 14:09:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| <pre>
 | |
|   BIP: 81
 | |
|   Title: Hierarchy for Colored Voting Pool Deterministic Multisig Wallets
 | |
|   Author: Justus Ranvier <justus@opentransactions.org>
 | |
|           Jimmy Song <jimmy@monetas.net>
 | |
|   Comments-Summary: No comments yet.
 | |
|   Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0081
 | |
|   Status: Deferred
 | |
|   Type: Informational
 | |
|   Created: 2014-08-11
 | |
|   License: PD
 | |
| </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 significant 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 hierarchy 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/btcsuite/btcwallet|btcwallet]] is the reference Bitcoin wallet for voting pools.
 | |
| 
 | |
| ==Copyright==
 | |
| 
 | |
| This document is placed in the public domain.
 | |
| 
 | |
| ==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|BIP80 - Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets]]
 |