跳到主要内容

HD钱包和种子

介绍分层确定性钱包(HD Wallet)和种子(Seed)。

详细技术细节请参考BIP-32

img.png

1.分层确定性钱包(HD钱包)

分层确定性钱包(Hierarchical Deterministic Wallet,简称HD钱包)是由Bitcoin Improvement Proposal 32(BIP-32)提出的一种钱包结构。HD钱包通过一个种子(seed)生成所有的私钥和公钥,使得用户只需备份一次即可管理多个地址,并且具有良好的扩展性和安全性。

2. 关键概念

2.1 种子(Seed)

种子是HD钱包的核心,它是一个随机生成的初始值,用于生成钱包中的所有密钥对。种子通常是通过用户输入的随机熵和钱包软件生成的随机数混合生成的。

2.2 助记词(Mnemonic)

助记词是将种子转换为一组易于记忆的单词序列。这种方式不仅方便用户备份和恢复钱包,还能减少记错或丢失种子的风险。助记词通常由12、15、18、21或24个单词组成,这些单词从一个标准化的词表中选取。

生成助记词的步骤如下:

  1. 生成随机熵:生成随机数。
  2. 计算校验和:对随机数进行SHA-256哈希,并取前若干位作为校验和。
  3. 组合数据:将随机数与校验和组合。
  4. 分割数据:将组合后的数据分成每组11位的二进制块。
  5. 映射词表:将每组11位二进制块映射到标准化词表中的单词。

2.3 根密钥(Master Key)

根密钥是由种子生成的第一个密钥对,包括根私钥(master private key)和根公钥(master public key)。根密钥是HD钱包的起点,从根密钥可以衍生出所有的子密钥。

2.4 子密钥(Child Key)

子密钥是从根密钥或其他子密钥衍生出的密钥。HD钱包使用分层结构,可以从一个根密钥衍生出多个子密钥,每个子密钥可以进一步衍生出更多的子密钥。子密钥的衍生过程是确定性的,即相同的种子总是生成相同的密钥序列。

2.5 扩展公钥(xpub)和扩展私钥(xpriv)

扩展公钥(xpub)和扩展私钥(xpriv)是包含了更多信息的公钥和私钥,用于支持HD钱包的分层结构。

  • xpub:扩展公钥包含了公钥、链码和衍生路径信息,可以生成子公钥而不需要知道私钥。
  • xpriv:扩展私钥包含了私钥、链码和衍生路径信息,可以生成子私钥和子公钥。

2.6 衍生路径(Derivation Path)

衍生路径是一个字符串,表示从根密钥到特定子密钥的路径。它通常采用斜杠分隔的数字表示法,如m/44'/0'/0'/0/0 。每个数字表示一个级别的子密钥,其中'表示硬化衍生(hardened derivation),不带'的数字表示非硬化衍生。

  • m:表示根密钥。
  • 44':表示遵循BIP-44标准。
  • 0':表示币种(0代表比特币)。
  • 0':表示账户。
  • 0:表示接收地址。
  • 0:表示地址索引。

3. HD钱包的工作原理

HD钱包的工作原理基于以下几个步骤:

  1. 生成种子:用户提供随机熵,钱包软件生成种子。
  2. 生成根密钥:通过种子生成根私钥和根公钥。
  3. 生成子密钥:使用根密钥和链码生成子密钥,可以进一步生成更多子密钥。
  4. 管理密钥和地址:通过扩展公钥和扩展私钥,可以生成和管理大量地址。

4. HD钱包的优势

HD钱包相对于传统钱包具有以下优势:

  1. 简化备份:用户只需备份一次种子或助记词,即可恢复所有密钥和地址。
  2. 良好的扩展性:HD钱包可以生成无限多的子密钥和地址,适应不同应用场景。
  3. 增强安全性:由于扩展公钥不包含私钥信息,可以在不暴露私钥的情况下生成子公钥。
  4. 标准化:HD钱包遵循BIP-32、BIP-39和BIP-44等标准,确保兼容性和互操作性。

5. 应用实例

5.1 生成一个HD钱包

  1. 生成助记词 :通过随机熵生成12个助记词,如:abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
  2. 生成种子:通过助记词生成种子。
  3. 生成根密钥:通过种子生成根私钥和根公钥。
  4. 生成子密钥:使用根密钥和链码生成子密钥,如路径m/44'/0'/0'/0/0

5.2 恢复钱包

  1. 输入助记词:用户输入备份的助记词。
  2. 生成种子:通过助记词恢复种子。
  3. 生成根密钥:通过种子恢复根私钥和根公钥。
  4. 生成子密钥:通过根密钥和衍生路径恢复子密钥和地址。

总结

分层确定性钱包(HD钱包)通过种子、助记词、根密钥和子密钥的结构化生成和管理,实现了简单备份、扩展性强和安全性高的特点。扩展公钥(xpub)和扩展私钥(xpriv)以及衍生路径(Derivation Path)使得HD钱包在比特币及其他加密货币领域得到了广泛应用。了解HD钱包的原理和关键概念,有助于更好地管理和使用加密货币资产。