﻿---
title: "分层确定性（HD）钱包"
description: "了解 HD 钱包如何从一个种子派生出密钥树、硬化派生与普通派生有何不同，以及完整且可测试的钱包备份必须保留哪些信息。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 分层确定性（HD）钱包

> 仅供教育用途，不构成投资建议；投资可能导致损失。

<a id="answer"></a>

## 直接回答

分层确定性（HD）钱包从一个根种子派生出可重现的密码学密钥对树。BIP-32 定义了密钥树机制：每个节点都是一个扩展密钥，由一个密钥和一个 `32-byte` 链码组成；每个子节点由索引选定。使用相同的根材料、派生规则和路径，就会重现相同的子密钥。

“确定性”让备份变得可行，但不代表所有钱包都能互换。助记词只是编码熵并生成种子的一种方式；派生路径负责选择节点，地址或脚本规则则把节点的公钥转换成区块链可识别的形式。如果口令、路径、网络、脚本类型或账户发现规则不同，只恢复助记词也可能看到一个空钱包。

“分层”意味着可以把权限划分到不同子树。账户级扩展公钥能让只读服务在不持有花费密钥的情况下派生普通后代公钥。扩展私钥则能派生对应的私钥子树，必须像保护一组私钥那样保护它，而不能只把它当作一个地址。

HD 钱包是一种密钥管理设计，而不是链上的钱包对象。区块链不会存储助记词、种子、路径、标签或备份。这些都是由钱包软件和用户维护的链下记录。

<a id="mechanism"></a>

## 工作原理

### 1. 从熵到根节点

BIP-39 常在 BIP-32 之前使用，但两项标准彼此独立。BIP-39 把 `128-256 bits` 的熵连同校验和编码为 `12-24 words`，再对规范化后的助记词和可选口令执行迭代 `2048` 次的 PBKDF2-HMAC-SHA512，生成一个 `512-bit` 种子。每个口令都会产生一个有效但不同的种子，因此口令缺失或输入错误时，系统不会可靠地显示“密码无效”。

BIP-32 使用以 `Bitcoin seed` 为密钥的 HMAC-SHA512，将种子字节转换为主私钥和主链码。这个根扩展私钥是 BIP-32 密钥树的源头。并非所有确定性钱包都使用 BIP-39 或 BIP-32，因此恢复时必须确认实际方案，不能仅凭存在恢复词就作推断。

### 2. 扩展密钥与子密钥派生

BIP-32 扩展私钥由私钥和链码组成；将其去私钥化后得到的扩展公钥，则由对应公钥和同一个链码组成。普通子密钥派生使用父公钥、链码和子索引，因此扩展公钥可以派生普通子公钥，但不能派生子私钥。

硬化子节点使用从 `2^31` 到 `2^32 - 1` 的索引，并把父私钥材料纳入计算。它们无法从父扩展公钥派生。路径通常用撇号标记硬化节点，例如 `m/84'/0'/0'`。硬化派生可以限制一种特定 BIP-32 故障造成的损害：父扩展公钥加上一个对应的非硬化子私钥，能够泄露父扩展私钥。

### 3. 路径赋予密钥树含义

BIP-44 定义了 `m / purpose' / coin_type' / account' / change / address_index`。前 `3` 层是硬化层；`change` 和 `address_index` 是普通层，因此账户公钥可以生成收款地址和找零地址。按照惯例，分支 `0` 为外部分支，分支 `1` 为内部找零分支。BIP-44 的发现流程会扫描交易历史，并以连续 `20` 个未使用的外部地址为间隔上限。

路径是元数据，不是秘密，也不是普适保证。BIP-84 把用途 `84'` 分配给原生 SegWit P2WPKH 账户，而其他用途或钱包专用布局会产生不同子树。币种类型只是一种命名空间惯例，并非由区块链强制执行的规则。

### 4. 密钥并非钱包的全部

公钥还需要配合网络以及地址或脚本规则。对于比特币，同一个密钥可以用于不同的输出脚本；多签钱包还需要门限、共同签名者密钥、密钥顺序和派生来源。BIP-380 输出描述符将密钥及其来源绑定到明确的脚本表达式，并可包含校验和。因此，仅有种子的备份可能不足以重建原钱包所监控或能够花费的内容。

钱包标签、联系人、交易备注、导入的密钥、账户名称，以及部分合约或智能账户的恢复设置通常无法通过确定性方式派生，需要单独导出或记录。

### 5. 备份与恢复是需要测试的流程

记录钱包实现、助记词或种子格式、是否存在口令、主指纹、相关路径、网络、账户索引，以及比特币描述符或等效策略数据。在实际可行时，让根秘密保持离线，并与公开恢复元数据分开存放。`xpub` 本身无法花费资金，但它可能暴露余额、地址之间的关系以及未来的普通后代地址。

在依赖备份之前，应先在可信环境中测试恢复。先在不转移资金的情况下对比已知地址或描述符，再核验收款与找零分支、后续账户、交易历史，并通过一笔受控的小额交易验证签名。切勿在不可信的网站或客服聊天中输入助记词、口令或 `xprv`。

<a id="example"></a>

## 示例

以路径为 `m/84'/0'/0'` 的比特币原生 SegWit 账户为例。`84'` 用途选择 BIP-84 惯例，`0'` 选择比特币币种类型命名空间，最后的 `0'` 选择第一个账户。只读系统可以接收账户扩展公钥并派生普通分支，而无需接收账户私钥。

第一个外部收款密钥位于 `m/84'/0'/0'/0/0`，下一个位于 `m/84'/0'/0'/0/1`。第一个内部找零密钥位于 `m/84'/0'/0'/1/0`。它们都从同一个账户派生，但不同分支和索引会选出不同密钥。用同一种子配合 `m/44'/0'/0'/0/0` 会选中另一棵子树和另一种输出惯例；结果为空并不能证明种子有误。

要形成完整的比特币恢复记录，应将根秘密备份与描述符或等效元数据分开保存；后者用于标识指纹、路径、扩展公钥、脚本类型和校验和。核验两个分支上多个曾经使用过的地址。只找到第一个收款地址，只能证明一个叶节点正确，不能证明所有账户、找零输出或钱包策略都已恢复。

<a id="risks"></a>

## 风险

- **单一根节点集中风险：** 根种子或层级足够高的扩展私钥一旦泄露，其范围内的所有后代都可能暴露。
- **备份丢失：** 丢失唯一的种子备份，或另行丢失未记录的 BIP-39 口令，可能导致所有派生密钥都无法恢复。
- **对口令的错误信心：** 错误的 BIP-39 口令会创建另一个有效钱包，看起来可能像是恢复成功但余额为空。
- **路径或脚本不匹配：** 正确种子若配上错误的用途、账户、分支、网络或输出类型，会生成有效却不相关的地址。
- **策略备份不完整：** 仅有种子和路径，可能无法重建多签、描述符、智能账户或钱包特有的花费条件。
- **扩展公钥隐私泄露：** `xpub` 可能暴露一组关联地址，并让他人持续追踪普通后代地址。
- **BIP-32 父节点泄露：** 父 `xpub` 加上一个泄露的对应非硬化子私钥，能够泄露父私钥子树。
- **不可信的恢复工具：** 网站、扩展程序、仿冒设备、剪贴板工具或屏幕共享都可能窃取整个根秘密。
- **未经测试的介质：** 纸张、金属、加密文件或硬件备份可能因抄写错误、腐蚀、忘记密码或格式不受支持而失效。
- **迁移不完整：** 只转移可见币种，却把代币、找零输出、合约角色、授权或后续账户留在旧根节点下，风险敞口仍然存在。

<a id="misconceptions"></a>

## 常见误解

### 一组备份助记词是否包含钱包的全部细节？

不是。它或许能重现根密钥材料，但未必包含口令、派生惯例、网络、脚本、多签策略、标签、导入的密钥或账户发现历史。应保留实际钱包所需的元数据。

### `xpub` 无法花费资金，所以公开它是否安全？

不安全。它通常不能签名，但可能泄露过去和未来的普通后代地址及其汇总历史。在上述 BIP-32 故障中，如果再配上一个对应的非硬化子私钥，还会危及父子树。

### 新地址是否会产生相互独立的备份？

不会。新地址有助于减少地址复用并改善隐私，但确定性后代仍由同一个祖先控制。即使每笔付款都使用新地址，根节点一旦泄露，整棵子树仍会受到影响。

### 恢复出一个熟悉的地址是否证明钱包已完整恢复？

不能。这只能验证根材料、路径和地址构造的一种组合。恢复仍需覆盖收款与找零分支、所有使用过的账户、脚本或策略，以及相关网络。

<a id="related"></a>

## 相关主题

- [钱包派生路径](/zh-cn/crypto/derivation-path/)
- [助记词](/zh-cn/crypto/seed-phrase/)
- [公钥和私钥](/zh-cn/crypto/public-private-key/)
- [硬件钱包](/zh-cn/crypto/hardware-wallet/)
- [冷钱包](/zh-cn/crypto/cold-wallet/)

<a id="sources"></a>

## 来源

- [BIP 32：分层确定性钱包](https://bips.dev/32/) - Bitcoin Improvement Proposals（查阅日期：2026-08-20）
- [BIP 39：用于生成确定性密钥的助记码](https://bips.dev/39/) - Bitcoin Improvement Proposals（查阅日期：2026-08-20）
- [BIP 44：多账户层级结构](https://bips.dev/44/) - Bitcoin Improvement Proposals（查阅日期：2026-08-20）
- [BIP 84：P2WPKH 账户派生方案](https://bips.dev/84/) - Bitcoin Improvement Proposals（查阅日期：2026-08-20）
- [BIP 380：输出脚本描述符通用操作](https://bips.dev/380/) - Bitcoin Improvement Proposals（查阅日期：2026-08-20）

Source: https://wiki.fcontext.com/zh-cn/crypto/hd-wallet/index.mdx
