﻿---
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-tw/crypto/derivation-path/)
- [助記詞](/zh-tw/crypto/seed-phrase/)
- [公鑰和私鑰](/zh-tw/crypto/public-private-key/)
- [硬體錢包](/zh-tw/crypto/hardware-wallet/)
- [冷錢包](/zh-tw/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-tw/crypto/hd-wallet/index.mdx
