From c9517ecf8708f9745cc9d608b7936dff6c541b57 Mon Sep 17 00:00:00 2001 From: Fonta1n3 Date: Wed, 16 Dec 2020 22:05:54 +0800 Subject: fixes --- bip-0048.mediawiki | 90 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 55 insertions(+), 35 deletions(-) (limited to 'bip-0048.mediawiki') diff --git a/bip-0048.mediawiki b/bip-0048.mediawiki index 7c39823..386b410 100644 --- a/bip-0048.mediawiki +++ b/bip-0048.mediawiki @@ -3,7 +3,7 @@ Layer: Applications Title: Multi-Account/Multi-Script Hierarchy for Deterministic Multi Signature Wallets Author: Peter Denton - Comments-Summary: Mixed review (one person) + Comments-Summary: No comments Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0048 Status: Proposed Type: Standards Track @@ -27,7 +27,7 @@ millions of addresses per chain. ==Key sorting== Any wallet that supports BIP48 inherently supports deterministic key sorting as per BIP67 so that all possible -multi-signature addresses/scripts are derived from deterministically ordered public keys. +multi-signature addresses/scripts are derived from deterministically sorted public keys. ==Path levels== @@ -37,7 +37,7 @@ We define the following 6 levels in BIP32 path: m / purpose' / coin_type' / account' / script_type' / change / address_index -`h` in the path indicates that BIP32 hardened derivation is used. +h or ' in the path indicates that BIP32 hardened derivation is used. Each level has a special meaning, described in the chapters below. @@ -55,7 +55,7 @@ Sharing the same space for various networks has some disadvantages. Avoiding reusing addresses across networks and improving privacy issues. -Coin type `0` for mainnet and `1` for testnet. +Coin type 0 for mainnet and 1 for testnet. Hardened derivation is used at this level. @@ -82,16 +82,18 @@ an external source. Such an algorithm is described in "Account discovery" chapte ===Script=== -This level splits the key space into three separate `script_type`(s). To provide +This level splits the key space into three separate script_type(s). To provide optimum backward compatibility. -The recommended default is pay to witness script hash `m/48'/0'/0'/2'`. +The recommended default is pay to witness script hash m/48'/0'/0'/2'. The following represent mainnet, account 0. -`1'`: Nested Segwit (p2sh-p2wsh) `m/48'/0'/0'/1'`
-`2'`: Native Segwit (p2wsh) `m/48'/0'/0'/2'`
-`3'`: Legacy (p2sh) `m/48'/0'/0'/3'`
+1': Nested Segwit (p2sh-p2wsh) m/48'/0'/0'/1'
+2': Native Segwit (p2wsh) m/48'/0'/0'/2'
+3': Legacy (p2sh) m/48'/0'/0'/3'
+ +Easily expanded to account for new script types. ===Change=== @@ -142,109 +144,127 @@ an external chain by generating a new address. ==Examples== {| -!coin -!account -!script -!chain -!address -!path +|network +|account +|script +|chain +|address +|path |- -|Bitcoin +|mainnet |first +|p2wsh |external |first |m / 48' / 0' / 0' / 2' / 0 / 0 |- -|Bitcoin +|mainnet |first +|p2wsh |external |second |m / 48' / 0' / 0' / 2' / 0 / 1 |- -|Bitcoin +|mainnet |first +|p2wsh |change |first |m / 48' / 0' / 0' / 2' / 1 / 0 |- -|Bitcoin +|mainnet |first +|p2wsh |change |second |m / 48' / 0' / 0' / 2' / 1 / 1 |- -|Bitcoin +|mainnet |second +|p2wsh |external |first |m / 48' / 0' / 1' / 2' / 0 / 0 |- -|Bitcoin +|mainnet |second +|p2wsh |external |second |m / 48' / 0' / 1' / 2' / 0 / 1 |- -|Bitcoin +|mainnet |second +|p2sh |change |first -|m / 48' / 0' / 1' / 2' / 1 / 0 +|m / 48' / 0' / 1' / 3' / 1 / 0 |- -|Bitcoin +|mainnet |second +|p2sh |change |second -|m / 48' / 1' / 1' / 2' / 1 / 1 +|m / 48' / 1' / 1' / 3' / 1 / 1 |- -|Bitcoin Testnet +|testnet |first +|p2sh-p2wsh |external |first -|m / 48' / 1' / 0' / 2' / 0 / 0 +|m / 48' / 1' / 0' / 1' / 0 / 0 |- -|Bitcoin Testnet +|testnet |first +|p2wsh |external |second |m / 48' / 1' / 0' / 2' / 0 / 1 |- -|Bitcoin Testnet +|testnet |first +|p2wsh |change |first |m / 48' / 1' / 0' / 2' / 1 / 0 |- -|Bitcoin Testnet +|testnet |first +|p2wsh |change |second |m / 48' / 1' / 0' / 2' / 1 / 1 |- -|Bitcoin Testnet +|testnet |second +|p2wsh |external |first |m / 48' / 1' / 1' / 2' / 0 / 0 |- -|Bitcoin Testnet +|testnet |second +|p2wsh |external |second |m / 48' / 1' / 1' / 2' / 0 / 1 |- -|Bitcoin Testnet +|testnet |second +|p2wsh |change |first |m / 48' / 1' / 1' / 2' / 1 / 0 |- -|Bitcoin Testnet +|testnet |second +|p2wsh |change |second |m / 48 h / 1' / 1' / 2' / 1 / 1 -|} +|- +}| + ==Reference== -- cgit v1.2.3