派生路径
在区块链和硬件钱包的使用中,派生路径是一个重要的概念,它决定了你的钱包生成哪些地址,以及不同钱包中的地址为何不同。
对于硬件钱包新手来说,根据不同钱包的默认设置,生成的地址格式可能会有所不同。根据自己的需求选择合适的派生路径和地址格式,用户可以获得最佳的交易效率和兼容性。
什么是派生路径?
派生路径是一个用来定义如何生成区块链地址的规则。通过特定的路径,钱包软件(如硬件钱包)可以根据种子生成不同的地址。
派生路径的基本格式如下:
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框架的派生路径标准。这保证了新旧钱包之间的兼容性,并确保不同钱包能够正确生成和管理地址。