WATS Wallet logoWATS Wallet
技术7 分钟阅读

什么是 HD 钱包?一条助记词如何控制众多地址

HD(分层确定性)钱包会从一条助记词派生出你将来用到的每一个地址。本文讲解 BIP-39、BIP-32 和 BIP-44 的真实运作方式,派生路径与 xpub 究竟在做什么,以及为什么同一条助记词在两个钱包里会显示不同地址。

HD(分层确定性)钱包指的是这样一种钱包:它将来会用到的每一把私钥、每一个地址,都从同一个主秘密派生而来,因此一条 12 或 24 个单词的助记词就备份了所有受支持链上的所有账户。BIP-39 把这些单词变成主种子,BIP-32 由它生长出一棵可复现的子密钥树,BIP-44 则把派生路径标准化——m/44'/60'/0'/0/0 这样的坐标说明一把密钥属于哪个用途、哪条链、哪个账户和哪个地址序号。因为种子加路径永远得出同一把密钥,任何兼容钱包都能仅凭这些单词重建整棵树;这也正是同一条助记词在两个默认路径不同的钱包里会显示不同地址的原因。WATS 是完全非托管的 HD 钱包:一条种子覆盖 Ethereum、Arbitrum、Optimism、Base、Polygon 和 BNB Chain——它们共用同一条 EVM 分支——外加各自独立分支上的 Solana 与 TON,而 WATS 从不持有任何密钥。

一个备份,众多账户

早期的加密钱包保存着一袋松散的随机私钥——文件丢了,币就丢了,而每个新地址都意味着一次新备份。现代钱包用一个看似简单的想法解决了这个问题:以确定性方式,从一个主秘密生成你将来需要的每一把密钥。这就是 HD 钱包——分层确定性钱包——也是为什么写在纸上的一条助记词能在多年之后,在从未见过这些账户的软件里,恢复横跨多条区块链的数十个账户。

从单词到主种子:BIP-39

助记词本身来自一个叫 BIP-39 的标准。钱包抽取随机熵,把它映射到固定词表上,交给你带内置校验和的 12 或 24 个单词。经过密钥延展函数处理,这些单词变成一个巨大的二进制主种子。两个性质很关键:单词不是密钥——它们是密钥的配方——而且过程是单向且可复现的。任何 BIP-39 钱包,输入相同的单词,永远计算出相同的主种子。这就是助记词成为完整备份的原因,也是保护它成为自托管核心习惯的原因,WATS 的助记词指南对此有详细说明。

有个细节很容易被忽略:BIP-39 还支持一个可选的 passphrase,有时被称作「第 25 个单词」。它会被混入密钥延展这一步,因此同样的 12 个单词配上不同的 passphrase,会得出完全不同的主种子,进而是一整套完全不同的账户。它不是加在现有钱包上的密码——它选中的是另一个钱包,弄丢它就和弄丢那些单词一样,会彻底失去那部分资金。

派生树:BIP-32

从那个主种子出发,BIP-32 定义了如何生长出一棵密钥。主密钥确定性地派生子密钥,子密钥派生孙密钥,每条分支都可从根部复现。正是这种层级让一个秘密能支撑无限的结构:储蓄和消费分开的账户、每笔收款一个新地址、各条链在各自的分支上——全部可以从同样的 12 或 24 个单词恢复,永远不需要备份任何新东西。

BIP-32 还区分强化派生与非强化派生。强化的层级(路径中带撇号的那些)需要父级私钥,这等于给分支砌了一道墙:在非强化派生下,一把泄露的子私钥加上父级的扩展公钥,就足以反推出父级私钥,而强化派生取消了这条捷径,攻击者便无法沿着树往上爬。这也是为什么标准路径中的账户层级都是强化的,只有最后两层不是。

派生路径:地址的地址

派生路径——你可能在高级设置里见过的 m/44'/60'/0'/0/0 这种神秘字符串——不过是穿越那棵树的路线指引:哪个用途、哪种币、哪个账户、哪个序号。BIP-44 标准化了这套布局,而一份共享的注册表(如今以 SLIP-44 的形式维护)分配币种编号,让 Ethereum 分支和 Solana 分支永不冲突。有一个结果常让人意外:每一条 EVM 链都复用币种编号 60,所以 Ethereum、Arbitrum、Optimism、Base、Polygon 和 BNB Chain 根本不是彼此独立的分支——它们派生出同一把密钥、显示同一个地址,这正是为什么一个地址在各条网络上持有的余额各不相同。不同生态在底层也使用不同的签名方案——Ethereum 和其他 EVM 链在 secp256k1 曲线上签名,Solana 和 TON 则使用 ed25519——但原则处处成立:种子加路径等于密钥,每一次都是。

xpub 会泄露什么

这棵树还有一个绝招:扩展公钥。xpub 允许软件派生某个分支的所有公开地址——但派生不出任何私钥。这使得只读的资产视图、以及代离线设备生成收款地址成为可能。需要注意的是隐私而非安全:任何持有你 xpub 的人都能看到该分支的每个地址并把它们关联起来。像分享那个账户的完整对账单一样谨慎地分享它——因为在功能上它就是。

值得一提:这是 secp256k1 才有的特性。在 Solana、TON 这类 ed25519 链上,每一层派生都是强化的,因此根本不存在可以交出去的「纯公钥分支」——那里的只读工具是直接基于地址本身工作的,而不是基于扩展公钥。

同一种子,不同地址?

经典的客服谜题:你把助记词导入另一个钱包,余额显示为空。几乎总是什么都没丢——第二个钱包在同一棵树上走的是另一条路径,或者默认为另一条链派生。资金就在它们一直所在的地方:原钱包使用的那条分支上。这也是关于「通用」备份的诚实提醒:种子标准是共享的,但路径惯例因钱包而异,所以在创建该种子的钱包家族中恢复最顺畅——或者选一个会替你扫描常见路径的钱包。在断定东西不见了之前,先检查派生路径设置和链的选择器,再到区块浏览器上确认你预期的那个地址。

密钥究竟存在哪里

既然一切都源自种子,那么对安全而言唯一重要的问题就是:种子和由它派生的密钥存放在哪里——以及谁能够碰到它们。在非托管钱包里,答案是你的设备,别无他处。这个区分同样是看待硬件的正确视角:以 WATS NFC Metal Card 为例,它存储私钥。它携带一个唯一的卡片 ID,通过 NFC 轻触,为存放在 WATS 应用内的密钥完成身份验证,并且只与一台设备配对——它更接近一把实体安全密钥,而不是冷存储保险库。分清你的哪件工具持有密钥、哪件只是授权使用密钥,就是清晰的恢复计划与凭空猜测之间的差别。

WATS 如何运用这一点

HD 设计正是真正的多链钱包得以存在的根基,WATS 完全倚仗它:一个备份、一个身份,EVM、Solana 和 TON 账户各自派生在正确的分支上——正是在一个钱包中管理 Ethereum、Solana 和 TON所描述的体验。WATS 端到端非托管:种子及其派生的每一把密钥只存在于你这一侧,WATS 从不持有任何密钥。费用层也随之统一:每个操作——转账、兑换、质押——都用同一种代币 ATS 计费,而不是各链的原生 gas,在 EVM 上通过 ERC-4337 paymaster,在 Solana 和 TON 上通过等效的代付者/中继者。这不是折扣:它改变的是由哪种代币付费,而不是网络收取多少。ATS 是 LayerZero OFT,一个余额横跨三个生态,收取的 ATS 从 1 亿供应量向 3000 万下限销毁——机制详见 ATS 费用页面

这一切落到实处其实很简单。把 WATS 配置一次——Chrome 扩展、手机 App 或两者都用——把助记词离线抄写下来,从那一刻起,WATS 为你在 Ethereum、Arbitrum、Optimism、Base、Polygon、BNB Chain、Solana 和 TON 上派生的每一个账户,都已经被你第一天做的那份备份覆盖了。这就是 HD 钱包的全部承诺,也是你应当把那十二个单词、而不是那个应用,当作真正要保护之物的理由。

常见问题

一条助记词真的能备份我所有的链和账户吗?

能——这正是 HD 设计的意义。种子确定性地生成一棵密钥树,按区块链、按账户各有分支,因此钱包为你创建的每个地址都能从同样的 12 或 24 个单词中恢复。反面是风险集中:持有这条短语的任何人都能重建整棵树,所以种子值得你最强的保护。

WATS 是 HD 钱包吗?一条种子覆盖哪些链?

WATS 是完全非托管的 HD 钱包:一条 BIP-39 助记词即可派生你在 Ethereum、Arbitrum、Optimism、Base、Polygon、BNB Chain、Solana 和 TON 上的账户,因此一个备份就全部覆盖。六条 EVM 链共用同一条派生分支——因而也是同一个地址——而 Solana 和 TON 各在自己的分支上,因为它们使用不同的签名方案。种子以及由它派生的每一把密钥都留在你的设备上——WATS 从不持有任何密钥。WATS NFC Metal Card 同样不存储密钥;它以轻触方式,为存放在 WATS 应用内的密钥完成身份验证,并且只与一台设备配对。

为什么我的助记词在另一个钱包里显示不同的地址?

因为第二个钱包默认沿着不同的路径派生,或者为不同的链派生——不是因为你的资金移动了。种子加派生路径决定密钥;钱包在种子标准(BIP-39)上一致,但在路径惯例上各不相同。你的资产仍在原钱包派生的地址上——在那个钱包里恢复,或用会扫描常见路径的钱包恢复,就能重新看到它们。

分享 xpub 危险吗?

它不会让你损失资金——扩展公钥只能派生地址,永远派生不出私钥,最多只能实现只读视图。代价是隐私:持有者可以枚举该分支的每个地址并把你的活动关联起来。把 xpub 当作那个账户实时的完整对账单,只分享给你愿意托付这类信息的服务。

BIP-39 的 passphrase 到底起什么作用?

它会被混入把你的单词变成主种子的那一步,所以添加或更改它,会产生一棵完全不同的密钥树。也就是说,它并不是保护现有钱包的密码——同样的 12 个单词,加与不加 passphrase 是两个彼此独立的钱包,而忘记 passphrase 和忘记单词一样无法找回。只有当你打算像保管助记词本身那样保管它时,才使用它。