目录:https://blog.csdn.net/qq_40452317/article/details/89646633

摘自《精通比特币》

一个常见误解是,比特币钱包里含有比特币。 事实上,钱包里只含有钥匙。 “钱币”被记录在比特币网络的区块链中。 用户通过钱包中的**签名交易,从而来控制网络上的钱币。 在某种意义上,比特币钱包是**链。

有两种主要类型的钱包:

第一种类型是非确定性钱包(nondeterministicwallet),其中每个**都是从随机数独立生成的。**彼此无关。这种钱包也被称为“JustaBunchOfKeys(一堆**)”,简称 JBOK钱包。

第二种类型是确定性钱包(deterministic wallet),其中所有的**都是从一个主**派生出来,这个主**即为种子(seed)。该类型钱包中所有**都相互关联,如果有原始种子,则可以再次生成全部**。确定性钱包中使用了许多不同
的**推导方法。最常用的推导方法是使用树状结构,称为分级确定性钱包HD (Hierarchical Deterministic)钱包

1、非确定性(随机)钱包

在最早的一批比特币客户端中( BitcoinCore,现在称作比特币核心客户端),钱包只是随机生成的私钥集合。这种类型的钱包被称作零型非确定钱包。举个例子, 比特币核心客户端预先生成100个随机私钥,从最开始就生成足够多的私钥并且每个**只使用一次。

这种钱包现在正在被确定性钱包替换,因为它们难以管理、备份以及导入。随机**的缺点就是如果你生成很多私钥,你必须保存它们 所有的副本。这就意味着这个钱包必须被经常性地备份。每一个**都必须备份, 否则一旦钱包不可访问时,钱包所控制的资金就付之东流

这种情况直接与避免地址重复使用的原则相冲突——每个比特币地址只能用一次交易。地址重复使用将多个交易和地址关联在一起,这会减少隐私。当你想避免重复使用地址时,零型非确定性钱包并不是好的选择,因为你要创造过多的私钥并且要保存它们。虽然比特币核心客户端包含零型钱包,但比特币的核心开发者并不鼓励大家使用。

区块链-钱包概述

 

2、确定性(种子)钱包

确定性,或者“种子”钱包包含通过使用单项离散函数而可从公共的种子生成的私钥。种子是随机生成的数字。这个数字也含有比如索引号码或者可生成私钥的“链码”。在确定性钱包中,种子足够恢复所有的已经产生的私钥,所以只用在初始创建时的一个简单备份就足以搞定。并且种子也足够让钱包导入或者导出。这就很容易允许使用者的私钥在钱包之间轻松转移。

区块链-钱包概述

3、分层确定性钱包(HD Wallets )

确定性钱包被开发成更容易从单个“种子”中生成许多**。确定性钱包的最高级形式是通过BIP0032 标准定义的HD钱包。HD钱包包含以树状结构衍生的**, 使得父**可以衍生一系列子**,每个子**又可以衍生出一系列孙**,以此类推,无限衍生。

区块链-钱包概述

相比较随机(不确定性)**,HD钱包有两个主要的优势。第一,树状结构可以被用来表达额外的组织含义。比如当一个特定分支的子**被用来接收交易收入并且有另一个分支的子**用来负责支付花费。不同分支的**都可以被用在企业环境中,这就可以支配不同的分支部门、子公司、具体功能以及会计类别。

HD 钱包的第二个好处就是它可以允许让使用者去建立一个公共**的序列而不 需要访问相对应的私钥。这可允许HD钱包在不安全的服务器中使用或者在每笔 交易中发行不同的公共钥匙。公共钥匙不需要被预先加载或者提前衍生,而在服 务器中不需要可用来支付的私钥。

4、种子和助记词(BIP-39)

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

今天, 大多数比特币钱包(以及其他加密货币的钱包)使用此标准,并可以使用可互操作的助记词导入和导出种子进行备份和恢复。

让我们从实际的角度来看以下哪种种子更容易抄录、阅读、导出以及导入。

16 进制表示的种子: 0C1E24E5917779D297E14D45F14E1A1A

助记词表示的种子:army van defense carry jealous true garbage claim echo media make crunch

由于比特币钱包技术已经成熟,出现了一些常见的行业标准,使得比特币钱包具备广泛互操作,易于使用,安全和灵活的特性。这些常用的标准是:

  • 助记码,基于 BIP-39
  • HD 钱包,基于 BIP-32
  • 多用途 HD 钱包结构,基于 BIP-43
  • 多币种和多帐户钱包,基于 BIP-44

相关文章: