写点什么

《精通比特币》学习笔记(第五章)

用户头像
棉花糖
关注
发布于: 2021 年 03 月 09 日
《精通比特币》学习笔记(第五章)

1、比特币钱包只含有密钥,而不是钱币。用户通过钱包中的密钥签名交易,从而来控制网络上的钱币。

2、有两种主要类型的钱包,区别在于它们包含的多个密钥是否相互关联

(1)非确定性钱包:每个密钥都是从随机数独立生成的。密钥彼此无关。这种钱包简称 JBOK 钱包。

(2)确定性钱包:所有的密钥都是从一个主密钥派生出来,这个主密钥即为种子。该类型钱包中所有密钥都相互关联,如果有原始种子,则可以再次生成全部密钥。

3、确定性钱包的最高级形式是通过 BIP0032 标准定义的 HD 钱包。HD 钱包包含以树状结构衍生的密钥,使得父密钥可以衍生一系列子密钥,每个子密钥又可以衍生出一系列孙密钥,以此类推,无限衍生。

4、由一系列英文单词生成种子是个标准化的方法,这样易于在钱包中转移、导出和导入,如果 HD 钱包与这种方法相结合,将会更加有用。这些英文单词被称为助记词,标准由 BIP-39 定义。

5、由于比特币钱包技术已经成熟,出现了一些常见的行业标准

(1)助记码,基于 BIP-39

(2)HD 钱包,基于 BIP-32

(3)多用途 HD 钱包结构,基于 BIP-43

(4)多币种和多帐户钱包,基于 BIP-44

6、助记码词汇是英文单词序列代表(编码)用作种子对应所确定性钱包的随机数。单词的顺序就是钱包的备份

7、助记词与“脑钱包”的主要区别在于脑钱包由用户选择的单词组成,而助记符是由钱包随机创建的,并呈现给用户。这个重要的区别使助记词更加安全。

8、助记词表示长度为 128 至 256 位的熵。通过使用密钥延伸函数 PBKDF2,熵被用于导出较长的(512 位)种子。将所得的种子用于构建确定性钱包并得到其密钥。

9、HD 钱包从单个根种子中创建,为 128 到 256 位的随机数。HD 钱包的所有的确定性都衍生自这个根种子。任何兼容 HD 钱包的根种子也可重新创造整个 HD 钱包。所以简单的转移 HD 钱包的根种子就让 HD 钱包中所包含的成千上百万的密钥被复制,储存导出以及导入。

10、分层确定性钱包使用 CKD 函数去从母密钥衍生出子密钥。

11、子私钥不能从非确定性(随机)密钥中被区分出来。因为衍生函数是单向的,所以子密钥不能被用来发现他们的母密钥。子密钥也不能用来发现他们的相同层级的姊妹密钥。

12、密钥衍生函数可以被用来创造密钥树上任何层级的子密钥。这只需要三个输入量:一个密钥,一个链码以及想要的子密钥的索引。密钥以及链码这两个重要的部分被结合之后,就叫做扩展密钥。

13、如果想要利用扩展公钥的便捷来衍生公钥的分支,应该从强化母私钥衍生公钥,而不是从一般的母私钥来衍生。

14、用在衍生函数中的索引号码是 32 位的整数。索引号小于 2^31 就意味着子密钥是常规的,而大于或者等于 2^31 的子密钥就是强化型的。

15、HD 钱包中的密钥是用“路径”命名的,且每个级别之间用斜杠(/)字符来表示。由主私钥衍生出的私钥起始以“m”打头。由主公钥衍生的公钥起始以“M“打头。因此,母密钥生成的第一个子私钥是 m/0。第一个公钥是 M/0。第一个子密钥的子密钥就是 m/0/1,以此类推。


用户头像

棉花糖

关注

还未添加个人签名 2021.02.10 加入

还未添加个人简介

评论

发布
暂无评论
《精通比特币》学习笔记(第五章)