推導路徑
在區塊鏈和硬體錢包的使用中,派生路徑是一個重要的概念,它決定了你的錢包產生哪些位址以及為什麼錢包之間的位址不同。
對於使用硬體錢包的初學者來說,根據不同錢包的預設設置,產生的地址格式可能會有所不同。用戶根據需要選擇合適的衍生路徑和地址格式,可以獲得更好的交易效率和相容性。
以下是在 UKey App 中更改派生路徑的影片指南。
什麼是推導路徑?
派生路徑是用來定義如何產生區塊鏈位址的規則。透過特定路徑,錢包軟體(例如硬體錢包)可以根據種子產生不同的位址。
推導路徑的基本格式如下:
m/目的'/coin_type'/帳戶'/更改/地址_index
每個部分都有特定的意義:
m: 代表主路徑(主密鑰)。
目的':定義錢包的目的,常見值包括:
44':用於傳統比特幣地址(Legacy)。
49':用於嵌套隔離見證位址(Nested SegWit)。
84':用於本機隔離見證位址(Native SegWit)。
coin_type': 區分不同區塊鏈,比特幣為0,萊特幣為2。
account': 用於區分不同的使用者帳戶。
更改: 0代表外部位址,1代表內部位址(通常用於變更)。
address_index: 位址的索引號,用於產生多個位址。
為什麼不同硬體錢包的位址不同?
如果您將相同的助記詞匯入多個硬體錢包,卻發現產生的位址不同,通常是因為匯出路徑不同。以下是一些常見的硬體錢包品牌及其衍生路徑(針對比特幣)。
硬體錢包 | 共同的推導路徑 | 地址類型 |
分類帳 | 米/44'/0'/0'/0/0 | 遺產 |
安全的 | 米/49'/0'/0'/0/0 | 巢狀隔離見證 |
帳本(隔離見證) | 米/84'/0'/0'/0/0 | 原生隔離見證 |
不同的錢包可能使用不同的預設匯出路徑,因此即使助記詞相同,產生的位址仍然可能不同。例如,Ledger 可能預設使用 84' 生成本機 SegWit 位址,而 Trezor 可能預設使用 49' 來產生巢狀 SegWit 位址。
使用硬體錢包時,選擇合適的衍生路徑至關重要,尤其是在不同位址格式之間切換時。
以比特幣為例,UKey硬體錢包和UKey App支援Legacy、Nested SegWit、Native SegWit、Taproot的衍生路徑,幫助用戶更好地管理自己的加密資產。
傳統、嵌套 SegWit、本機 SegWit
以比特幣為例,比特幣地址有不同的格式,每種格式都有不同的外觀和功能:
地址類型 | 前綴 | 推導路徑 | 描述 |
遺產 | 1xxx | 米/44'/0'/0'/0/0 | 這是比特幣最初的地址格式,交易費用較高。 |
巢狀隔離見證 | 3xxx | 米/49'/0'/0'/0/0 | SegWit 位址嵌套在 P2SH 中,向後相容於舊版比特幣錢包。 |
原生隔離見證 | BC1xxx | 米/84'/0'/0'/0/0 | 一種新的比特幣地址格式,交易費用較低,廣泛應用於現代硬體錢包。 |
一種更新的比特幣地址格式,交易費用較低,廣泛用於現代硬體錢包。
為了確保不同格式之間的兼容性,BIP(比特幣改進提案)引入了各種衍生路徑規則。這些不同的地址格式本質上是軟分叉的結果。比特幣網路透過軟分叉引入了SegWit功能,提高了可擴展性和交易效率。
分叉位址遵循 BIP 框架嗎?
比特幣和許多其他區塊鏈項目使用的BIP框架旨在解決一致性和相容性問題。即使在軟分叉之後,新引入的位址格式(例如 SegWit)仍然在 BIP 框架內運行,以確保:
向後相容性:舊錢包仍然可以識別新的地址格式。
標準化:不同的錢包可以使用相同的規則來產生位址。
這樣,雖然位址格式發生了變化(例如從1xxx變為bc1xxx),但它們仍然遵循BIP框架定義的推導路徑標準。這樣保證了新舊錢包的兼容性,確保不同的錢包能正確產生和管理地址。
