HD钱包和BIP32、BIP44、BIP39

2024-05-01 15:43:52 浏览数 (1)

1. 钱包

1.1 数字钱包

数字钱包是一种让用户以数字方式存储、跟踪、转账和接收货币的系统。其货币可以是数字资产如比特币,道格币等等,也可以是数字化的法定货币如美元和欧元等。

这个钱包并非传统指代的物理钱包,它是一个软件应用程序。它与区块链网络相连,为用户提供了一种方式来跟踪他们的货币、进行交易以及进行区块链操作。

一个典型的数字钱包包含两种“钥匙”——一个公钥,这是钱包的地址,他人可以向该地址发送货币。还有一个私钥,这是解密交易信息的密码,仅被钱包持有者知道。严格来说,当我们说“持有”一种数字货币,实际上我们是拥有了控制它的私钥。

掌握私钥等同于掌握了里面的数字货币,因此,保护私钥的安全显得尤为重要。一旦私钥丢失或者被盗用,相关的数字货币将会被永久性地无法使用。这一点与使用传统的金融账户非常不同,后者可以通过银行恢复或者更换。

1.2 HD钱包

HD钱包,全称为分层确定性钱包(Hierarchical Deterministic Wallet),是一种用于生成大量公私秘钥对的钱包。

HD钱包的工作原理基于一个单一的,初始生成的种子。通过种子可以生成一个或多个主私钥,每个主私钥又可以生成多个唯一的子私钥。这些子私钥可以被进一步用于生成孙子私钥以此类推,形成一个密钥的分层结构。这一切都可以通过原始种子再现出来。因此,只要保管好这个种子,就可以恢复钱包内所有生成过的地址和私钥。

为了增加钱包的隐私性,HD钱包可以为每一笔交易生成一个新的地址,这是因为所有的地址都是由同一个种子导出,可以避免多次使用同一个地址造成的隐私问题。

其中,HD钱包在比特币BIP32、BIP44、BIP39等提案中得到了规范和应用。BIP39规定了一种生成种子的方法,该种子可以使用12、18或24个单词的助记词表示,这些助记词是从一个固定的词汇表中选取的。这使得用户在备份钱包时只需要记住或者备份这些助记词,而不是复杂的私钥,大大降低了使用难度。

HD钱包是一个更为高级的数字钱包类型,它引入了一种新的方式,让我们能从单一的种子(简单来说是一串数据)生成无数个私钥和相对应的钱包地址。

HD钱包的关键优点是它使得备份钱包变得更加简单。用户只需要记住或者保存这个种子(通常是一串特定的单词,被称为助记词),就可以恢复自己所有的钱包地址和私钥。这意味着,即使用户的设备丢失,只要这个种子没有丢,那么他们的资产仍然可以通过导入这个种子恢复回来。

此外,HD钱包还带有更强的隐私性。因为每次交易都会生成一个新的地址,所以在链上仅根据钱包地址就很难追踪到一个人所有的交易和资产状况。

因此,可以将HD钱包视为数字钱包的一种,它仍然是管理和控制数字货币的一种工具,只是带有一些额外的特性。

2. BIP32、BIP44、BIP39

BIP是Bitcoin Improvement Proposal(比特币改进建议)的缩写,它是比特币开发者生成的一个标准,用来提出比特币的协议、客户端或环境的新特性或改进。每个BIP都会有一个编号,比如说BIP-32、BIP-44等,这些都是关于比特币的钱包设计标准。

BIP主要分为三种:

  • 标准化BIP:这种类型的BIP负责向网络、区块链或者协议等添加新特性。
  • 信息性BIP:这类BIP不涉及比特币协议的变化,主要是为了设计问题、指南、或者提供某个情况的常规信息给比特币社区。
  • 进程BIP:这种BIP描述的是进程或者环境的改变,但是它本身并不会加入到BIP的技术规范中。

所有的BIP都以一个建议的形式开始,在经过社区的充分讨论和修改后,如果收到了足够的支持,就可能被导入到比特币协议的标准中。

2.1 BIP32

BIP32,全称为Bitcoin Improvement Proposal 32,中文名为分层确定性钱包(Hierarchical Deterministic Wallets),是比特币改进建议中的一个标准。

在过去,比特币钱包的实现方式是每次生成一个新的私钥后,就要生成一个新的公钥和相应的比特币地址,并储存在钱包文件中。这种方式的问题在于,每次生成新的私钥和比特币地址后,就需要生成新的钱包备份。而BIP32的诞生解决了这个问题,它创造了一种新的私钥和公钥生成方式,只需一个种子,就可以生成树形结构的无限个私钥和公钥。

BIP32的主要特点有:

  • 单私钥支持生成无限密钥对:从一个种子生成公私钥对,在仅知道种子的情况下可以创建整个密钥树。这解决了备份问题,因为只需备份这个种子就可以恢复整个钱包。
  • 钱包的分层管理:BIP32规定了的一种钱包的结构,使得用户可以将钱包按照用途、业务、账号等进行分层管理。
  • 公钥派生:BIP32允许在知道一个节点的公钥和链码的情况下,派生出子公钥。这个特性可以使得公钥的派生可以在无须知道私钥的情况下完成,增强了安全性。
  • 隐私增强:传统的钱包使用随机生成的独立地址,而BIP32的钱包则是根据一样的种子来生成一批密钥,每次交易都可以使用新的地址,提高了隐私。

简单来说,BIP32主要改进了传统的钱包备份方式,使之简单高效且隐私更强。

2.2 BIP39

BIP39是用于生成BIP32种子的规范的名称。

BIP39,全称Bitcoin Improvement Proposal 39,中文名为助记词的生成方法,是比特币的一项改进提议。

BIP39常用于生成BIP32的种子。它规定了如何将随机数转换为一组易记的单词,这就是我们经常看到的一组12-24字的备份助记词。当用户生成钱包或首次打开钱包应用程序时,就会创建这样一组单词。在大部分现代加密货币的钱包中,BIP39都被广泛地使用。

以下是关于BIP39更详细的介绍:

  • 生成方法:助记词是由一组英文单词组成,这些单词都来自固定的单词表(共2048个)中。首先,根据用户的随机动作(如鼠标移动、键盘打字速度等)生成一个随机数,然后将这个随机数转换为一组单词。这个过程是可逆的,只要记住这组单词,就能恢复原始的随机数。
  • 密钥恢复:在BIP39规定的助记词生成方法中,只需记住12-24个简单的单词,用户就可以恢复整个钱包。这极大地简化了钱包私钥的备份和恢复问题,提高了钱包的可用性。
  • 密码功能:BIP39规定的密码功能可以增加恢复私钥的难度,使别人更难通过助记词恢复到你的私钥。一旦设置了BIP39密码,就必须通过助记词 密码的方式来恢复钱包。
  • 跨钱包兼容性:由于BIP39是一个开放的标准,各个钱包厂商之间有很高的兼容性,这意味着你可以把一个钱包的助记词导入到另一个钱包中,这极大地方便了用户。

BIP39是比特币钱包中一个非常重要的标准,它通过助记词将复杂的私钥管理问题简化,使得用户更加容易使用比特币。

2.3 BIP44

BIP44,全称是Bitcoin Improvement Proposal 44,中文名为多币种和多账户的规范,是比特币的一项提议。

BIP44基于种子(由BIP39生成)和BIP32路径,为确定性钱包定义了一个逻辑层次结构,并在此基础上定义了五层的树状路径。BIP44允许生成和管理多个币种和多个账户,每个账户有自己的接收和更改地址。

跟随这个规范,HD钱包能根据一个种子生成多元化的钱包系统,即你可以使用一个私钥种子生成并管理不同币种的账户与地址。

BIP44定义的路径结构是:m / purpose’ / coin_type’ / account’ / change / address_index

  • Purpose (目的):在BIP44中,目的一直被设置为44'
  • Coin Type (币种):这一层用于区别不同的数字货币,比如0代表比特币,1代表测试网比特币,60代表以太坊等等。完整的币种列表地址在这里。
  • Account (账户):把不同的账户地址分开,可以更好地管理资金。这一层使得用户可以在同一个软件下生成和管理多个独立的账户,使得账本可以透明化,而不会全部混在一起。
  • Change (找零):用于区别找零地址和接收地址。通常情况下,0代表外部地址,1代表找零地址
  • Address Index (地址序号):标识生成的第n个地址。

使用BIP44的好处是,只要记住种子和BIP44的这个路径定义,就能在任何符合BIP44规范的钱包上生成和恢复你需要管理的币种和地址。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!


声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。

blog: mengbin

Github: mengbin92

cnblogs: 恋水无意

腾讯云开发者社区:孟斯特


0 人点赞