Skip to content

Commit 3ac0664

Browse files
committed
chapter 5
1 parent 048d8d6 commit 3ac0664

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

ch05.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# 第五章 钱包
2+
3+
## 重点词汇
4+
钱包是私钥的容器
5+
6+
非确定性(随机)钱包和确定性(种子)钱包
7+
8+
HD wallet = Hirachy Deterministic wallet (分级确定性钱包)
9+
10+
种子=助记词 BIP39
11+
HD钱包 BIP32
12+
多用途HD钱包结构,基于BIP-43
13+
多币种和多帐户钱包,基于BIP-44
14+
15+
助记词的生成流程
16+
17+
![](https://camo.githubusercontent.com/206a23cb52a419ad9a99fb9e195efae3b0ddfe28/687474703a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f313738353935392d626564343936323433646437353338392e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f31323430)
18+
19+
助记词生成种子
20+
21+
![](https://camo.githubusercontent.com/bf862c1dddf3bea345b7b2ce053a917c8207ff58/687474703a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f313738353935392d313535653630343138383837386233392e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f31323430)
22+
23+
[BIP39助记词生成器](https://iancoleman.io/bip39/)
24+
25+
HD钱包中的子密钥,无法与非确定性密钥进行区分。(换句话说,他们长得一样)除非有链码(chain code)、密钥及密钥的索引,才能用来发现这种层级结构。
26+
27+
一个扩展密钥包括一个私钥(或者公钥)以及一个链码。
28+
29+
两种衍生子公钥的方法:或者通过子私钥,再或者就是直接通过母公钥(+链码chain code)。
30+
31+
因为扩展公钥包含有链码,如果子私钥被知道或者被泄漏的话,链码就可以被用来衍生所有的其他子私钥。简单地泄露的私钥以及一个母链码,可以暴露所有的子密钥。更糟糕的是,子私钥与母链码可以用来推断母私钥。
32+
33+
BIP-44指定了包含5个预定义树状层级的结构:
34+
35+
m / purpose' / coin_type' / account' / change / address_index
36+
37+
- 第一层的purpose总是被设定为44'。
38+
- 第二层的“coin_type”特指币种并且允许多元货币HD钱包中的货币在第二个层级下有自己的亚树状结构。目前有三种货币被定义:Bitcoin is m/44'/0'、Bitcoin Testnet is m/44'/1',以及 Litecoin is m/44'/2'。
39+
- 树的第三层级是“account”,这可以允许使用者为了会计或者组织目的,而去再细分他们的钱包到独立的逻辑性亚账户。 举个例子,一个HD钱包可能包含两个比特币“账户”:m/44'/0'/0' 和 m/44'/0'/1'。每个账户都是它自己亚树的根。
40+
- 第四层级就是“change”。每一个HD钱包有两个亚树,一个是用来接收地址一个是用来创造找零地址。注意无论先前的层级是否使用强化衍生,这一层级使用的都是常规衍生。这是为了允许这一层级的树可以在不安全环境下,输出扩展公钥。
41+
- 被HD钱包衍生的可用的地址是第四层级的子级,就是第五层级的树的“address_index”。比如,第三个层级的主账户收到比特币支付的地址就是 M/44'/0'/0'/0/2。表5-7展示了更多的例子。
42+
43+
![](https://camo.githubusercontent.com/cbffb5ebd98f1264f4801bfb7dbeb09ad2fbf14e/687474703a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f313738353935392d386539623266326462626334326163642e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f31323430)
44+
45+
46+
47+
## 思考题:
48+
49+
1. HD

0 commit comments

Comments
 (0)