本站参加 Binance 推荐计划,邀请码与推荐链接只放在开户教程一页 · 收入来源与披露

私钥和助记词是什么关系?从私钥、地址到派生路径

私钥、公钥、地址、助记词、派生路径,这五样东西谁由谁算出来、哪样能给人看、哪样丢了就全丢,按 BIP-39、BIP-32、BIP-44 三份标准原文排一遍。

私钥和助记词是什么关系 · 持币手册

先看一个抄错助记词的例子

假设你把 12 个助记词抄在便签上,搬家时折了一下,墨水蹭花了一小段,你凭记忆补了一个词回去,补错了位置。现在照这张便签恢复不出原来的钱包,地址里的钱还在链上;能不能补回来,看还记不记得一个收款地址,见文末助记词丢了或泄露了怎么办一节。

助记词不像银行卡密码,输错了可以找客服重置;也不像家门钥匙,丢了可以换锁。它就是那笔资产的全部控制权:只有这一份,抄下来的每一份都和原件等效,丢了没有人能补发。

下面把私钥、公钥、地址、助记词、派生路径这五个常被混着说的概念,按它们真实的层级关系排开。读完不需要会写代码,但在任何一款钱包的设置页里看到 Derivation Path、Passphrase 这些选项,应当知道自己在选什么。涉及标准的地方都附了原文:BIP-39、BIP-32、BIP-44。

私钥是什么,为什么算不回来

它就是一个非常大的随机数

抛开术语,私钥就是一个数字:一个介于 1 和 2256 之间的整数。2256 大约是 1.16 × 1077。你在教程里见过的 e9873d79c6d87dc0fb6a577… 这类一长串十六进制字符,只是把这个 256 位整数换成十六进制写出来,一共 64 个字符。

所以生成一个私钥,就是从这么大的范围里随机挑一个数。钱包用的是操作系统提供的密码学安全随机源,目的是让这个数没有任何人能预测,包括钱包开发者。随机源出问题,私钥就能被别人重算出来,这也是为什么只该用来源可靠的钱包来生成。

为什么从公钥算不回私钥

公钥是私钥算出来的,为什么不能反过来?答案在椭圆曲线密码学。比特币和以太坊用的是 secp256k1 这条曲线:私钥乘以曲线上一个固定的「生成点」,得到曲线上另一个点,这个点就是公钥。

这个「乘」正着算很快,反过来由结果求「乘了多少次」,叫椭圆曲线离散对数问题,目前没有已知的高效解法。私钥的安全不靠藏,靠的是这道题按现有的数学和算力算不过来。常说的量子计算机威胁,针对的也是这一步:Shor 算法理论上能高效求解离散对数。

私钥、公钥、地址是怎么一步步算出来的

三者不是同一个东西

地址、账户、私钥常被混着说,其实它们是一条单向的链条:

层级 是什么 长度 / 形态 能公开吗 从上一级怎么来
私钥(Private Key) 一个 256 位随机整数 64 位十六进制 / 52 位 WIF 绝对不能 随机生成
公钥(Public Key) 椭圆曲线上一个点(x, y) 压缩后 33 字节 / 66 位十六进制 技术上可以,但实践中也不主动公开 私钥 × 生成点
地址(Address) 公钥经哈希后的短串 比特币 26-62 位 / 以太坊 42 位 当然可以——它就是用来收款的 公钥 → SHA-256 / Keccak-256 → 截断 / 编码

表里中间那一行值得多看一眼:公钥也不建议主动公开。比特币常用的地址格式在链上放的是公钥的哈希,不是公钥本身,要等你从这个地址花出一笔钱,公钥才随交易公开。日常使用里你只需要记住,能发给别人的是地址。

以太坊地址和比特币地址有什么不一样

比特币地址在哈希之后还加了校验和编码,所以你看到的是 1…、bc1q… 这样的形态,抄错一位通常会被钱包拒绝。以太坊地址是公钥做 Keccak-256 哈希后取最后 20 个字节,前面加 0x,本身不带校验;后来的 EIP-55 用字母大小写给它补了一层校验。所以转账时仍要逐位核对完整地址,不能只看开头和结尾几位。

助记词是怎么来的:BIP-39 规定了什么

助记词出现之前,备份的是什么

BIP-32 的动机一节写得很直白:比特币参考客户端用的是一把把随机生成的私钥,所以每隔一段时间就要重新备份钱包文件;确定性钱包不需要这么频繁地备份。再往前一步,就是把那个起点做成人能抄、能读的形式。

BIP-39 的编号登记于 2013 年 9 月 10 日,署名作者是 Marek Palatinus、Pavol Rusnak、Aaron Voisine 和 Sean Bowe。它规定了怎样把一段随机数变成一组单词,这组单词就是助记词。

2048 个单词加校验位

BIP-39 用一份固定的词表,共 2048 个单词。2048 等于 211,所以每个单词正好编码 11 个比特。12 个单词是 132 个比特:前 128 比特是随机熵,后 4 比特是由熵的 SHA-256 哈希得出的校验位。24 个单词是 264 比特:256 比特熵加 8 比特校验。有了校验位,随手写 12 个词表里的词,平均只有 1/16 的机会碰巧通过校验,其余都会被钱包拒绝。

词表也是为抄写设计的。按标准原文,词表做到了只输入前四个字母就能唯一确定一个单词,并且避开 build 和 built、woman 和 women 这类长得太像、容易抄错的成对单词。

从助记词到种子,再到主私钥

助记词本身不是私钥。按 BIP-39,它要经过 PBKDF2 这个密钥派生函数:助记词当密码,字符串 mnemonic 加上可选的 passphrase 当盐,用 HMAC-SHA512 迭代 2048 次,得到一个 512 位的种子。这个种子才是后面所有派生的起点。

由此有一个要紧的推论:同一组助记词,配上不同的 passphrase,会得到完全不同的种子,也就是完全不同的一套钱包。标准原文说,任何 passphrase 都会生成一个有效的种子。所以钱包不会提示你「passphrase 输错了」,输错只会打开一个空钱包。用了 passphrase,它就和助记词一样必须备份。

BIP-39、BIP-32、BIP-44 各管哪一段

三个标准的分工

这三个编号常被连着说,分工其实很清楚:

标准 编号登记年份 解决什么问题 输入 输出
BIP-39 2013 把随机数变成人能抄的单词 128–256 比特熵 12 / 15 / 18 / 21 / 24 个单词,再算出 512 位种子
BIP-32 2012 从一个种子派生出一层层的子私钥(HD 钱包结构) 种子 一棵逐层派生的私钥树
BIP-44 2014 给这棵树规定一套路径命名规则,让不同钱包能互相导入 BIP-32 树 形如 m/44'/60'/0'/0/0 的路径约定

连起来就是:BIP-39 把随机数变成人能抄的单词,再算出种子;BIP-32 从这一个种子派生出一整棵私钥树;BIP-44 给这棵树的每一层规定含义,让不同钱包按同一种方式编号。三者合起来,就是常说的 HD 钱包(Hierarchical Deterministic Wallet,分层确定性钱包)。

m/44'/60'/0'/0/0 这串带斜杠的路径怎么读

在钱包的高级设置里见到 m/44'/60'/0'/0/0 这样的字符串,就是 BIP-44 路径。标准原文给的格式是 m / purpose' / coin_type' / account' / change / address_index,逐段对应:

  • m:根节点,由种子算出的主私钥
  • 44':purpose,固定为 44',表示这棵子树按 BIP-44 的规则走(带撇号表示 hardened 派生)
  • 60':币种编号。编号登记在 SLIP-0044:0 是比特币,60 是以太坊,195 是 Tron,501 是 Solana
  • 0':账户编号,从 0 开始,不同账户的资金互不相混
  • 0:0 是对外收款用的地址链,1 是找零用的地址链
  • 0:地址序号,从 0 开始依次递增

所以 m/44'/60'/0'/0/0 的意思是:按 BIP-44,以太坊,第 0 号账户,收款链,第 0 个地址。下一个地址是 m/44'/60'/0'/0/1,依此类推。按 BIP-32,普通派生的序号从 0 到 231−1。

一组助记词能管多少个地址,换钱包后地址为什么对不上

地址多到用不完

照上面的路径算:同一个币种下,账户编号有 231 个,约 21 亿;每个账户的收款链上又有 231 个地址。两者相乘是 262,约 4.6 × 1018,也就是四百多亿亿个。所以一组助记词管得了你在多条链上的全部地址,不用为每条链各记一组。

各家钱包用的路径不完全一样

BIP-44 规定了格式,但各家钱包的默认路径并不完全一致,有的钱包甚至不用 BIP-39。两个例子:

  • Phantom 的 官方帮助页列出它的 Solana 默认路径是 m/44'/501'/{序号}'/0',另有一种备选写法和一种已弃用的旧写法;以太坊等 EVM 链默认是 m/44'/60'/0'/0/{序号}。
  • Electrum 的 官方文档写明它不生成 BIP-39 助记词,用的是自己带版本号的种子格式。

结果就是:同一组助记词导入另一款钱包,可能只看到一部分地址,或者一个都对不上。这时候币并没有丢,多半是两边走的派生路径不同。先别动,去新钱包的高级设置里找派生路径选项,或者查原钱包官方文档里写的路径,改成一致再看。

助记词的顺序、语言、换钱包:三个容易想错的地方

单词的顺序能不能乱

不能。BIP-39 是把熵和校验位按顺序拼成一长串比特,再每 11 位切成一个单词,顺序一变,整串比特就变了,对应的是另一个钱包,校验多半也通不过。

如果确定是哪 12 个词、只是忘了顺序,数量上还有得试:12 个词的排列共 12! 种,约 4.79 亿,其中能通过校验的大约十六分之一,约三千万种,再逐个和已知的地址比对。前提是这 12 个词一个不多、一个不少、一个不错。开头那张便签难就难在已经不确定是哪 12 个了。这类尝试必须在不联网的设备上做。

能不能用中文助记词,或者中英文混着写

BIP-39 除英文外还有其它语言的词表,但每份词表各自独立,不能把一组助记词里的几个词换成另一种语言。标准原文对此有明确态度:由于绝大多数 BIP-39 钱包只支持英文词表,强烈不建议用非英文词表生成助记词。照这个建议做就行,一律用英文。

换一款钱包,助记词还能不能用

要看两款钱包是不是用同一套标准、同一条路径。两边都按 BIP-39 生成种子、按同一条 BIP-44 路径派生,导入后看到的地址就一样。路径不同,会出现导入成功却看不到余额的情况,按上一节的办法查路径。还有的链用的不是 secp256k1 这条曲线,比如 Solana 用的是 Ed25519,它的地址只能在支持这条链的钱包里派生出来。

可以这样记:助记词是原料,钱包按各自的路径把它加工成地址。原料相同,路径不同,出来的地址就不同。

怎么不联网校验一组助记词抄得对不对

想确认自己抄下来的助记词有没有抄错,原则只有一条:校验一组完好的助记词时,助记词不输入任何联网的网页,也不输入钱包本身以外的任何程序,不管它叫检查工具、找回工具还是派生路径计算器,也不管它是否声称「本地运行」。网页的代码随时可以换,你在页面上看不出它有没有把输入的内容发出去。抢救残缺的助记词是唯一的例外,那种情况只在一台永久不联网的电脑上跑开源工具,见常见问答里「助记词丢了一两个单词能恢复吗」一条。

稳妥的做法是用硬件钱包自带的检查功能,助记词只在设备自己的屏幕和按键上输入(Trezor Model One 例外,按设备屏幕提示的顺序在 Trezor Suite 里输):

  • Trezor:Trezor Suite 里点设备设置,在 Wallet backup 一栏下点 Check backup,然后在设备上按顺序输入单词。按 Trezor 的官方指南(以 Safe 5 为例),设备会把你刚输入的备份和它存着的备份做比对,对得上就在设备屏幕上提示备份没有问题,对不上会显示错误;这个过程里设备不会记住你输入的内容。Safe 3、Safe 7、Model T 各有对应的指南。
  • Ledger:Ledger 提供一个叫 Recovery Check 的设备端应用。按 它在 LedgerHQ 官方代码仓库的说明,这个应用让你在设备上输入助记词,再与设备里现有的种子比对,告诉你是否一致。

如果检查结果对不上,说明手里的备份是错的。按 Trezor 指南的说法,这时应当尽快把资金转到一个备份无误的新钱包,否则设备一旦丢失或损坏,币就永久拿不回来了。

用的是手机或浏览器里的软件钱包、没有硬件钱包的话,校验要放在抄完之后、往里转钱之前:先记下第一个地址,在同一个官方钱包 App 里删掉这个空钱包,再用抄下来的助记词导入,看第一个地址是否和刚才记下的一致。一致就说明抄对了。已经有钱在里面的钱包不要这样删了重导,先用钱包自带的备份验证功能。

助记词丢了或泄露了怎么办

丢了:分清完全丢失和部分残缺

完全丢失,比如纸条毁了、设备也坏了,链上没有找回密码这回事。没有任何人能凭空恢复一组你完全没有线索的助记词,声称能做到的一律别信:真有这种办法,它就能恢复任何人的助记词,整个体系早就不成立了。

部分残缺,比如 12 个词里缺一两个,或者词都在只是忘了顺序,数量上还有逐个尝试的余地,思路见前面讲单词顺序的那一段。遇到自称能帮人补全助记词的收费服务要格外小心:凡是让你先把已有的单词发过去、或者先付钱的,都不要用。

泄露了:当它已经公开,马上转移

助记词只要有泄露的可能,哪怕只是怀疑,就按已经公开来处理。把所有还能动的资产,尽快转到一组在没出过问题的设备上全新生成的助记词所控制的地址,不要为了省手续费拖延。先转什么、转到哪、授权怎么处理,见私钥泄露之后的应急步骤。

这篇里的标准细节,以文中链接的 BIP 与 SLIP 原文为准;备份该抄在什么介质上、放在哪里,见助记词怎么保存。

说明:本文的标准细节取自正文里给了链接的 BIP-39、BIP-32、BIP-44、SLIP-0044 原文;Phantom、Electrum、Trezor、Ledger 的做法取自各自的官方文档,2026 年 10 月核对,后续版本可能调整。发现错误请发邮件至 [email protected],我会修订并在 勘误页 留下记录。文章内容仅供学习参考,不构成投资建议。