SEED·KNOT

三件套

什么是私钥、公钥、地址

多数解释都在用一个专业词去解释另一个专业词,于是三个词凑在一起反而更糊涂。这篇不这么干。

示意图:私钥、公钥、地址与单向推导四个关键词排在助记词卡样式的格子里

01一句话说清三者关系

私钥推导出公钥,公钥推导出地址。这条链只能往一个方向走:拿着私钥能算出后面两个,拿着地址却算不回前面任何一个。

所以三者的敏感程度也是递减的:私钥绝不能给任何人,公钥日常几乎用不到,地址本来就是给别人看的。

推导链示意图:助记词到私钥到公钥到地址,箭头单向;反向的虚线箭头被打上叉,表示无法反推
整条链只能朝一个方向走。反向那条被划掉的虚线,同时解释了两件看起来相反的事:地址公开不影响安全,助记词丢了也没人能找回。

02用一枚印章来打比方

私钥是那枚印章本身,公钥是「这个印子长什么样」的说明,地址是刻在门牌上的编号。别人照着说明能认出你的印子,但没法据此复刻出印章。

把这个比方展开:

  • 你要花钱,就用印章在一张「我要把 X 转给 Y」的纸上盖一个印——这就是签名。
  • 别人要验证这笔转账是不是你发的,拿公钥去比对印子,对得上就认。整个过程里印章从没离开过你的手。
  • 别人要给你转钱,只需要知道你的门牌号,也就是地址。

这个比方也解释了为什么钱包签名时不需要把私钥传出去:验证方只需要看到「印子」和「说明」,不需要拿到印章。任何要你交出印章的人,都不是在验证你,而是在拿走你的东西——这条判断依据的完整版在 助记词与私钥

03为什么反过来推不回去

因为这条推导用的是一类特殊的数学运算:正向计算很快,反向求解需要的时间长到没有实际意义。这不是「暂时还没人破解」,而是当前可用算力下不成立的事情。

不用记具体算法名字,记住性质就够了:从私钥算公钥是一次确定的计算,很快;从公钥反推私钥则要在一个极大的空间里搜索。地址那一步还额外做了一次哈希,哈希本身也是单向的。

这也回答了一个常见的担忧:既然地址是公开的,会不会有人算出我的私钥?在当前的技术条件下,这不是一条现实的攻击路径。真实世界里资产被转走的原因,几乎全部是助记词泄露或者签错了授权,而不是密码学被攻破。路径清单见 钱包被盗通常是怎么发生的

04把地址公开出去有风险吗

资产安全上没有风险,隐私上有。地址公开不会让别人动你的钱,但会让任何人查到这个地址的全部交易记录和余额。

链上数据是公开的,这意味着:

  • 把地址发到社交平台、贴在个人主页上,等于公开了这个地址的资产状况和往来。
  • 如果这个地址曾经和你的实名交易所账户有过往来,那么关联出「这是谁」并不困难。
  • 公开的高余额地址会被当作目标,招来定向的钓鱼私信和假空投。

地址复用带来的是隐私成本,不是安全成本

比特币这类链上,钱包默认会为每一笔收款生成一个新地址,这不是为了更安全,而是为了让别人不容易把你的多笔收款串成一条完整的资金画像。以太坊系则通常长期使用同一个地址,因为那套体系的账户模型不同。

对普通人来说,这件事落到实处只有一句话:你打算长期公开的那个收款地址,不要和你放主要资产的那个是同一个。前者会被人反复查看,后者的余额和往来不该轻易被关联到你本人。

实用做法

需要公开收款的场景,用一个专门的地址,别用你放主要资产的那个。用途分离的思路在 创建钱包那一篇 的第一节讲过,它能解决的问题比看上去多。

05那助记词在这条链的哪一层

在最上面。助记词推导出一个主密钥,主密钥再按规则派生出一系列私钥,每个私钥对应一个地址。所以助记词的权限比任何单个私钥都大。

这一层关系很重要,它解释了两件事:

  1. 为什么一组助记词能管很多地址、很多条链。因为它是那棵树的根。
  2. 为什么泄露助记词比泄露单个私钥严重得多。后者丢的是一个地址,前者丢的是整棵树。

顺带说明一个新人常见的误会:在多数以太坊系的链上,同一组助记词派生出的地址是同一个,也就是说你在不同链上看到的地址长得一模一样。地址相同不代表链相同,转账时仍然必须选对网络——这个坑写在 什么是链,选错链会发生什么

还有一类地址背后没有私钥

上面讲的推导链适用于普通账户地址。链上还有另一类地址:合约地址。它由部署交易算出来,背后不存在对应的私钥,因此没有任何人能用签名把它里面的资产转出去——除非那份合约的代码本身写了转出的逻辑。

这就是「把币转到代币合约地址上通常拿不回来」的原因:不是没人愿意帮你,是这件事在结构上做不到。多签钱包也属于合约地址这一类,只不过它的代码里写明了「需要几个指定地址共同签名才能转出」。

想查这几个词在钱包界面上分别叫什么,可以翻 Web3 术语速查

06常见问题

别人知道我的地址有危险吗

资产上没有危险,别人无法凭地址动用你的资金。但地址公开意味着交易记录和余额可以被任何人查看,也可能招来针对性的钓鱼,所以需要公开收款时建议使用单独的地址。

私钥和助记词是同一个东西吗

不是。助记词位于更上一层,它能派生出一整组私钥;单个私钥只对应一个地址。因此泄露助记词的后果比泄露单个私钥严重得多。

可以从地址查到私钥吗

不能。从私钥到公钥再到地址的推导是单向的,反向求解在当前算力条件下不具备现实可行性。实际发生的资产损失几乎都源于助记词泄露或错误授权,而不是反推。

为什么我在不同链上的地址是一样的

因为多数以太坊系的链使用同一套地址生成规则,同一组助记词派生出的地址自然相同。但地址相同不代表资产互通,转账时选错网络仍然会出问题。