衍生路徑 Derivation Path

衍生路徑,是 HD 分層錢包中描述如何從主金鑰一路往下衍生,到某一把特定子金鑰的索引序列。同一組種子可以衍生出無限多把金鑰,衍生路徑就像地址簿的座標,讓錢包能夠重現每一把金鑰的位置。

衍生路徑 Derivation Path

 

衍生路徑,Derivation Path,是 HD 錢包中描述如何從主金鑰一路往下衍生,到某一把特定子金鑰的索引序列。

衍生路徑以斜線分隔各層,每一層對應一次子金鑰衍生,例如 m/84'/0'/0'/0/0,代表從主金鑰出發,依序經過用途、幣種、帳戶、收款類型與地址索引,最後得到第一個收款地址的金鑰。

同一組種子可以衍生出無限多把金鑰,衍生路徑就像地址簿的座標,讓錢包能夠重現每一把金鑰的位置。

衍生路徑由 BIP 32 定義格式,再由 BIP 43、BIP 44 等標準規範各層的意義。


衍生路徑 基本概念

  • 路徑格式

    衍生路徑以 m 開頭,代表主私鑰 Master Private Key,後面以 / 分隔每一層的子金鑰編號。

    若以 M 開頭,則代表主公鑰 Master Public Key,只能用於一般衍生,不能衍生強化子金鑰。

 

  • 子金鑰編號

    每一層的編號是一個 32 位元整數,範圍為 0 到 2³² − 1。

    編號 0 到 2³¹ − 1 為一般衍生 Normal Derivation,編號 2³¹ 到 2³² − 1 為強化衍生 Hardened Derivation。

 

  • 強化衍生標記

    路徑中,強化衍生的層級會在編號後方加上單引號 ' 或字母 h,例如 84' 與 84h 表示同一件事。

    強化衍生需要使用私鑰才能計算,無法僅憑擴展公鑰推導出來。

 

  • 深度與階層

    每多一層路徑,擴展金鑰的深度 Depth 就加 1。

    主金鑰的深度為 0,m/84'/0'/0' 的深度為 3。

 

  • 路徑只是約定

    BIP 32 只規定了衍生的數學方法,並未規定每一層的用途。

    各層的意義由 BIP 43、BIP 44、BIP 84 等標準約定,讓不同錢包可以使用相同路徑,還原出相同的地址。


衍生路徑 組成結構

以 BIP 44 系列的標準路徑為例:

m / purpose' / coin_type' / account' / change / address_index

  • 用途 Purpose

    第一層標示該錢包採用的標準,數字對應 BIP 編號。

    常見的有 44'(傳統 P2PKH)、49'(P2SH-P2WPKH)、84'(P2WPKH,原生 SegWit)、86'(P2TR,Taproot)。

 

  • 幣種 Coin Type

    第二層標示使用的幣種,編號登記在 SLIP-44。

    比特幣主網為 0',測試網為 1'。

 

  • 帳戶 Account

    第三層用來區分不同的帳戶,從 0' 開始。

    每個帳戶有自己獨立的地址與餘額,錢包匯出的擴展公鑰通常就在這一層,例如 m/84'/0'/0'。

 

  • 收款與找零 Change

    第四層只有兩個值,為一般衍生。

    0 為外部鏈 External Chain,用來產生對外給付款人的收款地址。

    1 為內部鏈 Internal Chain,用來產生交易找零的地址。

 

  • 地址索引 Address Index

    第五層為地址編號,從 0 開始遞增,為一般衍生。

    例如 m/84'/0'/0'/0/0 是第一個收款地址,m/84'/0'/0'/0/1 是第二個。

 

  • 多重簽名路徑

    多重簽名錢包常使用 BIP 48,路徑為 m/48'/coin_type'/account'/script_type'。

    腳本類型欄位以 1' 表示 P2SH-P2WSH,2' 表示 P2WSH,後續也有 Taproot 相關的擴充,各簽署者各自在此路徑下產生擴展公鑰。

衍生路徑 運作方式

  • 從種子建立主金鑰

    由助記詞產生種子後,經過 HMAC-SHA512 運算,得到主私鑰與主鏈碼,成為路徑 m 的起點。

 

  • 逐層衍生

    依照路徑由左至右,每一層都以上一層的金鑰、鏈碼與該層編號,進行一次子金鑰衍生。

    走完整條路徑後,得到的金鑰即為該路徑對應的金鑰。

 

  • 產生地址

    最底層的子私鑰換算出公鑰後,再依照用途層對應的地址類型,編碼為比特幣地址。

    例如 84' 下的金鑰會建立 P2WPKH 地址,86' 下的金鑰則會建立 P2TR 地址。

 

  • 地址掃描與 Gap Limit

    還原錢包時,軟體會依照路徑逐一產生地址,並查詢區塊鏈上是否有交易紀錄。

    為避免無止境往下搜尋,BIP 44 規定了 Gap Limit,連續遇到 20 個未使用的地址,便停止掃描該條鏈。

 

  • 搭配金鑰來源資訊

    輸出描述符常以 [指紋/路徑] 的形式記錄金鑰來源,例如 [d34db33f/84'/0'/0']xpub...。

    指紋是主公鑰的前 4 位元組,讓簽署裝置能辨識這把金鑰來自哪個種子與哪條路徑。


衍生路徑 應用

  • 地址類型管理

    同一組助記詞,可以在不同用途層下,產生傳統、SegWit 與 Taproot 地址,彼此獨立,互不重疊。

 

  • 多帳戶管理

    切換帳戶編號,就能在同一組種子下管理多個獨立帳戶,例如個人、家庭與事業。

 

  • 跨錢包還原

    遵守同一標準路徑的錢包,可以用相同的助記詞還原出相同的地址。

    這使使用者能在不同廠牌的軟體與硬體錢包之間遷移。

 

  • 硬體錢包與多簽協作

    硬體錢包匯出指定路徑下的擴展公鑰,錢包軟體據此建立地址與交易。

    多簽錢包的各簽署者,也是透過交換各自路徑下的擴展公鑰,建立共同的多簽腳本。

 

  • 收款與找零分離

    收款鏈與找零鏈分開,錢包能清楚區分對外收款與內部找零。

    這也方便錢包判斷哪些輸出是自己的找零,簡化餘額與交易記錄顯示。


衍生路徑 注意事項

  • 路徑錯誤不代表資金遺失

    以錯誤路徑還原錢包,通常會看到空的餘額,因為得到的是另一組金鑰與地址。

    資金仍在原本路徑對應的地址上,改用正確路徑即可看到。

 

  • 需要備份路徑資訊

    採用標準路徑的錢包,只備份助記詞通常就能還原。

    若使用自訂路徑、非標準帳戶或多重簽名,則需要連同路徑與描述符一併備份。

 

  • 強化衍生層不可由 xpub 推導

    路徑中帶有 ' 的層級,無法由上層的擴展公鑰往下推導。

    因此帳戶層級以上為強化衍生,使匯出的帳戶 xpub 不會洩漏上層金鑰。

 

  • 不同標準路徑會得到不同地址

    同一組助記詞,使用 44'、49'、84'、86' 分別會得到不同類型的地址,餘額也不會共通。

    還原時需確認資金原本是用哪一種地址類型存放。

 

  • 部分錢包使用自訂路徑

    並非所有錢包都遵守 BIP 44 系列的路徑,部分軟體會使用自訂路徑。

    遇到無法還原的情況,需查詢該錢包使用的路徑。


衍生路徑 相關標準

  • BIP 32:Hierarchical Deterministic Wallets
  • BIP 43:Purpose Field for Deterministic Wallets
  • BIP 44:Multi-Account Hierarchy for Deterministic Wallets
  • BIP 48:Multi-Script Hierarchy for Multi-Sig Wallets
  • BIP 49:Derivation scheme for P2WPKH-nested-in-P2SH based accounts
  • BIP 84:Derivation scheme for P2WPKH based accounts
  • BIP 86:Key derivation for Single Key P2TR Outputs
  • BIP 380:Output Script Descriptors General Operation
  • SLIP-44:Registered coin types for BIP-0044
2026/11/15 6:35 PM


更多文章