推导路径
在区块链和硬件钱包的使用中,派生路径是一个重要的概念,它决定了你的钱包生成哪些地址以及为什么钱包之间的地址不同。
对于使用硬件钱包的初学者来说,根据不同钱包的默认设置,生成的地址格式可能会有所不同。用户根据需要选择合适的衍生路径和地址格式,可以获得更好的交易效率和兼容性。
以下是在 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框架定义的推导路径标准。这样保证了新旧钱包的兼容性,保证不同的钱包能够正确生成和管理地址。
