衍生路徑
在區塊鏈和硬體錢包的使用中,衍生路徑是一個重要的概念,它決定了您的錢包生成哪些地址,以及不同錢包中的地址為何不同。
對於硬體錢包新手來說,根據不同錢包的預設設定,生成的地址格式可能會有所不同。根據自己的需求選擇合適的衍生路徑和地址格式,用戶可以獲得最佳的交易效率和兼容性。
什麼是衍生路徑?
衍生路徑是一個用來定義如何生成區塊鏈地址的規則。透過特定的路徑,錢包軟體(如硬體錢包)可以根據種子生成不同的地址。
衍生路徑的基本格式如下:
m / purpose' / coin_type' / account' / change / address_index
每個部分都有特定的含義:
m: 表示根路徑(master key)。
purpose': 定義錢包的用途,常見值有:
44': 用於傳統比特幣地址(Legacy)。
49': 用於巢狀 SegWit 地址(Nested SegWit)。
84': 用於原生 SegWit 地址(Native SegWit)。
coin_type': 區分不同的區塊鏈,如比特幣是0,萊特幣是2。
account': 用於區分用戶的不同帳戶。
change: 0 代表外部地址,1 代表內部地址(通常用於找零)。
address_index: 地址的索引號,用於生成多個地址。
不同硬體錢包上的地址為何不同?
如果您在多個硬體錢包上匯入相同的種子短語,但發現生成的地址不同,通常是因為衍生路徑的不同。以下是一些常見硬體錢包品牌的衍生路徑(比特幣)。
硬體錢包
|
常見衍生路徑
|
地址類型
|
Ledger
|
m/44'/0'/0'/0/0
|
Legacy
|
Trezor
|
m/49'/0'/0'/0/0
|
Nested SegWit
|
Ledger (SegWit)
|
m/84'/0'/0'/0/0
|
Native SegWit
|
不同的錢包可能預設使用不同的衍生路徑,因此即使種子短語相同,生成的地址也不同。例如,Ledger 預設使用 84' 路徑來生成原生 SegWit 地址,而 Trezor 可能預設使用 49' 生成巢狀 SegWit 地址。
當您使用硬體錢包時,選擇合適的衍生路徑非常重要,特別是在不同地址格式之間進行切換時。
以比特幣為例,OneKey 硬體錢包與 OneKey App 同時支援 Legacy、Nested SegWit、Native SegWit、Taproot 的衍生路徑,助您在加密貨幣旅程的一臂之力。
Legacy、Nested SegWit、Native SegWit
以比特幣為例,比特幣地址有不同的格式,外觀和功能均有不同:
地址類型
|
前綴
|
衍生路徑
|
說明
|
Legacy
|
1xxx
|
m/44'/0'/0'/0/0
|
這是比特幣的原始地址格式,交易費用較高。
|
Nested SegWit
|
3xxx
|
m/49'/0'/0'/0/0
|
巢狀在P2SH中的 SegWit 地址,向後兼容老的比特幣錢包。
|
Native SegWit
|
bc1xxx
|
m/84'/0'/0'/0/0
|
新的比特幣地址格式,交易費用更低,廣泛用於現代硬體錢包。
|
為兼容不同的格式,BIP(比特幣改進提案,Bitcoin Improvement Proposal)引入了不同的衍生路徑規則。這些不同的地址格式實際上是軟分叉的結果。比特幣網絡透過軟分叉引入了 SegWit 功能,從而提升了擴展性和交易效率。
分叉地址是否遵循 BIP 框架?
比特幣和許多其他區塊鏈項目使用的 BIP 框架,是為了解決一致性和兼容性問題。即便在軟分叉後,新引入的地址格式(如SegWit)仍然必須在 BIP 框架下工作,以確保:
向後兼容性:舊版本錢包仍然可以識別新地址格式。
標準化:不同的錢包可以使用相同的規則生成地址。
透過這種方式,雖然地址格式變了(如從1xxx變成bc1xxx),但它們仍然遵循BIP框架的衍生路徑標準。這保證了新舊錢包之間的兼容性,並確保不同錢包能夠正確生成和管理地址。