一组助记词,走遍天下也不怕(BIP-0044)
第一部分:什么是助记词?
助记词,通常是一个由 12、18 或 24 个英文单词组成的序列。它本质上是一个人类可读的、对随机数(熵)的编码形式。
核心作用: 它是生成和管理所有加密货币私钥的“根钥匙”。记住这一串单词,就等同于备份了由它派生出来的所有资金和资产。
标准来源: 助记词的标准来源于 BIP-39。
生成过程简要说明:
钱包首先生成一段随机熵。
通过加密哈希函数计算这段熵的校验和。
将“熵 + 校验和”按照一定规则,从一个预定义的2048个单词的列表中映射出对应的单词。
最终得到的单词序列就是助记词。
关键点: 助记词本身不是私钥,也不是种子。但它可以通过一个密钥拉伸函数(PBKDF2)与一个可选的“密码”结合,生成出最终的那个根种子。
第二部分:什么是 BIP-44?
BIP-44 的全称是 BIP-0044: Multi-Account Hierarchy for Deterministic Wallets。
核心思想: 它定义了一个层级确定性钱包的结构,或者你可以把它想象成一个如何从根种子(由助记词生成)系统性地、有组织地生成无数个密钥和地址的“路线图”或“规则”。
在没有这个标准之前,钱包虽然能从种子生成多个密钥,但管理方式混乱,尤其是当需要支持多种币种时。BIP-44 提供了一种被行业广泛接受的统一规范。
BIP-44 的核心:路径结构
BIP-44 规定了一个非常清晰的树状层级结构,每一层都有其特定的含义。这个结构通过一个路径来表示:
m / purpose' / coin_type' / account' / change / address_index
让我们来逐层分解这个路径的含义:
m
:
代表 master 或 root,即由助记词生成的根种子。
purpose'
:
这通常固定为 44'
。数字44表示遵循的就是BIP-44这个标准。撇号表示使用强化衍生,这是一种更安全的衍生方式。
coin_type'
:
这是区分不同加密货币的关键! 这是一个预定义的数字,代表不同的币种。
例如:
比特币: 0'
以太坊: 60'
莱特币: 2'
狗狗币:3'
这一层确保了你的比特币私钥和以太坊私钥来自不同的分支,互不影响,极大地增强了安全性和条理性。
account'
:
代表账户索引,从 0
开始。这允许你在同一个币种下创建多个独立的“账户”。
例如,你可以用 account=0
作为日常消费账户,account=1
作为储蓄账户。不同账户之间的资金是分开的。
change
:
这一层只有两个值:0
或 1
。
0
用于生成接收地址(你对外公开的、用来收款的地址)。
1
用于生成找零地址(在比特币交易中,如果你支付了10个BTC但只消费了1个,剩下的9个会退回到一个你控制的“找零地址”,这个地址就来自 change=1
分支)。对外通常只展示 change=0
的地址。
address_index
:
这是最底层的索引,从 0
开始递增。
这就是为什么你的钱包可以生成无数个地址(地址0,地址1,地址2...)。为了隐私性,建议每次收款都使用新地址。
第三部分:助记词与 BIP-44 如何协同工作?
现在我们把两者结合起来,看一个完整的流程:
创建钱包: 你创建一个新钱包,系统生成一组 12个单词的助记词(BIP-39)。
生成根种子: 钱包将这组助记词(和你设置的额外密码)通过PBKDF2函数处理,得到一个根种子。
派生主密钥: 根种子输入到HMAC-SHA512算法中,生成一个主扩展私钥。
应用 BIP-44 路径: 当需要为一个特定币种生成地址时,钱包就按照 BIP-44 的路径规则,从主密钥开始一层层地衍生下去。
生成具体地址:
你想生成一个比特币的收款地址,路径可能就是:m/44'/0'/0'/0/0
你想生成一个以太坊的收款地址,路径就是:m/44'/60'/0'/0/0
你想生成你的第5个比特币收款地址,路径就是:m/44'/0'/0'/0/4
核心优势:
一个助记词,管理所有资产: 你只需要备份那一组助记词,就可以恢复所有遵循 BIP-44 标准的币种的所有账户和地址。
结构清晰: 资金管理非常有条理,按币种、按账户严格分开。
隐私增强: 可以轻松生成无数个地址,避免地址重用,保护交易隐私。
行业通用: 绝大多数现代钱包(如 Ledger, Trezor, Trust Wallet, MetaMask 等)都支持 BIP-39 和 BIP-44,这意味着你的助记词通常可以在这些钱包之间相互导入导出,恢复你的所有资产。
概念 | 作用 | 标准 |
---|---|---|
助记词 | 人类可读的备份形式,是生成所有密钥的根源。 | BIP-39 |
BIP-44 | 组织管理规则,定义了如何从根源系统性地派生出不同币种、账户、地址的层级结构。 | BIP-44 |
一组助记词,走遍天下也不怕(BIP-0044)
介绍了BIP-0044,比特币改进提案中的多账户体系,用于标准化钱包的账户结构,包括助记词、加密货币类型、账户层级和地址生成。它扩展了钱包的功能,如多地址和多币种支持。
BIP-0044 是比特币改进提案(Bitcoin Improvement Proposal)的一部分,标题是“确定性钱包的多账户层次结构”(Multi-Account Hierarchy for Deterministic Wallets)。BIP-0044 规定了分层确定性钱包的标准。
BIP-0039 解决的是助记词映射到私钥的问题。BIP-0044 解决的是账户结构的问题。增加了多账户,多地址,多币种的支持。
派生路径如下
m / purpose' / coin_type' / account' / change / address_index
m(主密钥)
从随机种子(助记词)或其他方法生成主密钥。从这个主密钥派生子密钥。我们为什么需要助记词?
purpose
固定值(44),表示按照 BIP-0044规范执行。
coin_type(加密货币类型)
列出几个比较常用的 coin_type
Coin Type | Value |
---|---|
BTC | 0 |
DOGE | 3 |
ETH | 60 |
ATOM | 76 |
XMR | 80 |
SOL | 501 |
account
此级别将密钥空间拆分为独立的用户标识,可以用这个路径来区分钱包的种类,就好比我们有多张银行卡,有的卡是收发工资的,有的是绑定支付宝小额支付的。
帐户从 0 开始按顺序递增进行编号。
change
0 或 1
0 :表示用于生成在钱包之外可见的地址,常用于接收资金
1 :表示用于生成在钱包内部使用的地址,常用于Return transaction Change
。还记得我们讲过的 UXTO 吗?如果输出没有完全消耗,可以将剩余的BTC输出到这种地址。
注:这些都是规范,不是强制性的,钱包也可以不这样实现,但是最好按照规范来搞
address_index
从 0 开始,通过递增这个值,可以生成同一账户下的不同地址。最多可以有 $ 2^(32) - 1 = 2,147,483,647 $ 个地址。
总结
简单来说:
助记词(BIP-39)是“种子”本身,而 BIP-44 是告诉这粒“种子”如何长成一棵包含各种不同果实(比特币、以太坊等)的“大树”的种植说明书。
本站提醒:投资有风险,入市须谨慎,本内容不作为投资理财建议。