Skip to content

ETH #2:HD Wallet(分层确定性钱包)

一套助记词,管理所有链上的所有地址。HD Wallet 是现代加密钱包的基石。


学习目标

  1. 掌握 HD 钱包的设计目标和生成过程
  2. 了解 BIP32、BIP39、BIP43、BIP44 标准
  3. 掌握普通派生和强化派生的区别
  4. 理解异构链(ETH、BTC、SOL)的账户体系

什么是 HD Wallet

HD Wallet(Hierarchical Deterministic Wallet)即分层确定性钱包,通过一个种子(Seed)可以派生出无限数量的密钥对,形成一棵树状结构。

为什么需要 HD Wallet

  • 备份简单:只需记住一组助记词,就能恢复所有地址
  • 隐私增强:每次收款可以使用不同地址
  • 多链支持:同一组助记词可以在 ETH、BTC、SOL 等不同链上生成地址
  • 组织管理:可以按"账户"分组管理不同用途的地址

核心标准

BIP39:助记词

将随机种子编码为人类可读的 12 或 24 个英文单词

abandon ability able about above absent absorb abstract absurd abuse access accident

助记词 → 经过 PBKDF2 函数 → 生成 512 位种子(Seed)

BIP32:分层派生

定义了如何从主密钥(Master Key)逐层派生子密钥。

BIP44:标准派生路径

m / purpose' / coin_type' / account' / change / address_index
层级含义示例
purpose固定为 4444'
coin_type链类型0'=BTC, 60'=ETH, 501'=SOL
account账户索引0', 1', 2'...
change0=外部地址, 1=找零地址0
address_index地址序号0, 1, 2...

完整派生流程

graph TB
    A["🎲 随机熵<br/>128/256 位"] -->|"BIP39"| B["📝 助记词<br/>12/24 个单词"]
    B -->|"PBKDF2<br/>+ 可选密码"| C["🌱 种子 Seed<br/>512 位"]
    C -->|"HMAC-SHA512"| D["🔑 主私钥 + 主链码<br/>Master Key + Chain Code"]

    D --> E["m/44'/60'/0'/0/0<br/>ETH 第1个地址"]
    D --> F["m/44'/60'/0'/0/1<br/>ETH 第2个地址"]
    D --> G["m/44'/0'/0'/0/0<br/>BTC 第1个地址"]
    D --> H["m/44'/501'/0'/0'<br/>SOL 第1个地址"]

    style A fill:#e1f5fe
    style B fill:#fff3e0
    style C fill:#e8f5e9
    style D fill:#f3e5f5

派生树结构

graph TB
    M["m<br/>主密钥"] --> P44["m/44'<br/>BIP44 标准"]

    P44 --> ETH["m/44'/60'<br/>Ethereum"]
    P44 --> BTC["m/44'/0'<br/>Bitcoin"]
    P44 --> SOL["m/44'/501'<br/>Solana"]

    ETH --> EA0["m/44'/60'/0'<br/>账户 0"]
    ETH --> EA1["m/44'/60'/1'<br/>账户 1"]

    EA0 --> EC0["m/44'/60'/0'/0<br/>外部地址"]
    EA0 --> EC1["m/44'/60'/0'/1<br/>找零地址"]

    EC0 --> ADDR0["m/44'/60'/0'/0/0<br/>地址 #0"]
    EC0 --> ADDR1["m/44'/60'/0'/0/1<br/>地址 #1"]
    EC0 --> ADDR2["m/44'/60'/0'/0/2<br/>地址 #2"]

普通派生 vs 强化派生

特性普通派生强化派生(带 '
输入父公钥 + 链码私钥 + 链码
安全性子密钥泄露可能推导父密钥子密钥泄露无法推导父密钥
应用场景只读钱包(用扩展公钥派生子公钥)标准钱包(更安全)
路径表示m/44/60/0m/44'/60'/0'

强化派生更安全,因此 BIP44 路径中 purpose、coin_type、account 层级都使用强化派生。

学习资源