每一笔比特币交易需要使用私钥签名证明对它所有权,已经签名的交易广播比特币网络,会使用公钥对该笔交易进行验签是否合法,证明是合法交易的节点会把交易广播到其他节点。如果非法无法广播到其他比特币网络节点。
私钥证明对比特币拥有权,而公钥则是验证交易合法。那私钥和公钥这么重要的信息放在哪里呢?
钱包
钱包分为:非确定性(随机)钱包、确定性钱包
1.非确定性钱包
早期比特币钱包只是随机生成的私钥集合。这种类型的钱包被称作零型非确定钱包。
举个例子,比特币核心客户端预先生成100个随机私钥,一开始就生成足够多的私钥并且每把钥匙只使用一次。这种类型的钱包有一个昵称“Just a Bunch Of Keys(一堆私钥)”简称JBOK。
随机生成私钥的缺点:
- 难以管理、备份以及导入。如果生成很多私钥,必须保存它们所有的副本。私钥用完就要生成,意味着这个钱包必须被经常性地备份。
- 用户对隐私要求比较高,每个比特币地址只能用一次交易。也意味着需要生成很多私钥。
2.确定性钱包
确定性钱包(种子钱包)对种子使用单项离散方程生成的私钥。种子是随机生成的数字。在确定性钱包中,只要有种子,就可以找回所有私钥,只需备份种子就相当与备份你的所有钱包,所以种子也相当重要,一定要备份到安全的地方。
HD 钱包(Hierarchical Deterministic)是目前常用的确定性钱包 ,HD 是 Hierarchical Deterministic(分层确定性)的缩写。分层是指在不同层级生成各自私钥。
主密钥可以生成子密钥,子密钥可以衍生孙密钥,依次类推。就像一棵树,有主干、树干、树枝、树叶组成。
HD 钱包特性:
1.只需要一个主(根)私钥,就能生成海量子私钥
2.只需要主公钥,就可以生成出任意数量的子公钥。也就是说,无需私钥介入(主私钥和子私钥),就能基于主公钥生成新(公钥)地址,而这些地址其实都能被主私钥所控制。
HD钱包从单个根种子中创建,为128到256位的随机数。HD钱包的所有的确定性都衍生与根种子。创建主密钥以及HD钱包的主链代码的过程。
根种子是随机数,不方便人们记忆,把根种子转化为助记词方便用户记录。助记词是12至24个次的顺序组成,备份钱包就是备份好助记词。
2.1确定性钱包好处
1.权限控制
可以做到某一个特定分支的子密钥被用来接收交易收入,另一个分支的子密钥用来负责支付花费。根据不同部门职责控制密钥权限使用。例如:想让会计看到所有的交易,但不想让他花你的钱?可以给他任何一级上的公钥,他就可以看到该级下的所有交易,并且不能花任何的币。
2.安全便利
允许使用者不需要访问私钥可以公共密钥的序列。每笔交易使用不同公钥,公钥不需要被预先加载或者提前衍生,服务器中无须具有可用来支付的私钥。