有了私钥这个 256 位整数后,钱包在 secp256k1(比特币和以太坊用的曲线)上做一次点乘,得到曲线上的一个点。这个点的坐标就是公钥。整个推导是单向的:从私钥能很快算出公钥,反过来在现有算力下基本算不动。
为什么这个词重要
普通用户日常用到的是地址,不是公钥。但理解公钥的位置很关键,因为它解释了一件反直觉的事:你在链上转账时,钱包广播的是"交易 + 签名 + 公钥"三件套,全节点拿公钥去验签,对得上才算数。整个过程不需要你出示私钥,也证明不了你知道它——零知识地证明你拥有支配权,就是公钥密码学的本意。
有些场景你会直接见到公钥:比特币早期的 P2PK 输出、Schnorr 多签、Nostr 协议的身份(npub 就是公钥的 bech32 编码)、以太坊的离线签名验证。换句话说,公钥不是程序员的玩意儿,它是你身份在链上对外那张脸。
常见误解
- "公钥就是地址"——不是。地址通常是公钥再做一次哈希再加上校验码得到的更短字符串。把地址当作公钥的"显示名"更准确。
- "公开公钥不安全"——公钥本身可以公开,这是设计意图。真正要保密的只有私钥。但在量子计算大规模可用之前的过渡期,比特币社区习惯地址只用一次(一花就换),减少公钥长时间暴露的窗口。
延伸阅读
- 相关词条:私钥、地址、派生路径
- 深度长文:私钥与助记词 · 加密世界的身份证