公钥私钥到底是什么?非对称加密入门

加密世界一切的基础是非对称加密——公钥和私钥成对存在,作用不对称。这一课用最朴素的类比讲清楚。打开 币安官网;下载 币安官方APP;iPhone 用户先看 iOS安装教程

为什么需要公私钥

传统密码(对称密钥):你和我用同一个密码加密解密。问题:密码怎么安全交换?

非对称密钥:

  • 一对密钥(公钥 + 私钥)
  • 公钥加密,只能私钥解密
  • 私钥签名,公钥验证
  • 公钥可公开,私钥保密

这解决了"密码交换"难题。

一个邮箱锁的类比

想象一个邮箱:

  • 你给所有人一把"投信钥匙"(公钥):能投信但不能取
  • 你自己保留"取信钥匙"(私钥):能开邮箱取信
  • 任何人想给你私信,用投信钥匙锁起来投进去
  • 只有你能用取信钥匙打开

公私钥就是这种"单向"逻辑。

数字签名的逻辑

签名是反向用法:

  • 你用私钥"签名"一段话
  • 别人用你的公钥能验证"这签名是 A 写的"
  • 别人不能伪造你的签名

这就是为什么链上转账需要私钥——你必须签名才能转出资产。

公钥就是地址(差不多)

加密钱包里:

  • 私钥 → 通过算法生成公钥
  • 公钥 → 通过哈希生成地址(如 0x123...)
  • 地址公开,公钥也公开
  • 私钥永远不出钱包

你给别人地址收钱,别人转账时往这个地址转。

私钥的几种格式

私钥本身是 256 位的随机数(约 78 位十进制数)。常见展示形式:

  • WIF:经过编码的字符串
  • Hex:32 字节十六进制(比特币)
  • 助记词:12 / 24 个英文单词,等价于私钥
  • Keystore JSON:加密文件

最常用的是助记词——人类好记好抄。

助记词怎么算出私钥

助记词通过 BIP-39 标准转化:

  1. 12-24 个单词组合
  2. 通过 PBKDF2 算法 + 盐(可选密码)
  3. 得到种子(512 位)
  4. 通过 HD(Hierarchical Deterministic)派生出无数个私钥

所以一个助记词 → 无数个钱包地址。这是为什么 MetaMask 能从一个助记词生成多个账户。

椭圆曲线

加密用的非对称算法是 ECDSA(基于椭圆曲线):

  • BTC、ETH 用 secp256k1 曲线
  • 比 RSA 更高效
  • 椭圆曲线不变 = 全球加密币兼容

一些细节误解

误解一:地址就是公钥

不完全是。地址是公钥经过哈希后的"指纹"。地址比公钥短,且不能反推公钥(除非已签名)。

误解二:私钥是密码

不是。私钥是数学密钥。密码可以"找回"(重置),私钥"丢了就丢了"。

误解三:助记词可以改

不可以。助记词由生成算法决定,改一个字母就完全不同的钱包。

一份"安全心智模型"

理解这几件事:

  1. 私钥就是钱。私钥决定一切。
  2. 公钥可以公开,但你的钱包里的钱是私钥决定的。
  3. 签名 ≠ 转账。但签名某些恶意消息也可能损失资产。
  4. 地址生成不出私钥。所以别人知道你的地址不能盗你钱。

几种"被骗的签名"

警惕这些场景:

  • DApp 让你 "Sign In With Wallet":可能签的是"全部资产授权"
  • 看到 "permit" 字样:是无 Gas 授权,特别危险
  • 假签名页:让你签"恶意消息"

签前看清要签的是什么。Rabby 等钱包能更直观地解析。

学习者的练习

第一步:在 MetaMask 创建一个新钱包 第二步:看自己的助记词、私钥、地址 第三步:理解三者关系 第4步:尝试用助记词在另一个钱包恢复 第5步:观察派生出的多个地址

常见疑问

Q:私钥能被破解吗? A:理论上需要全宇宙的算力运行几亿年。实际安全。

Q:私钥能"找回"吗? A:不能。只能用助记词恢复。

Q:每个币用的私钥不同吗? A:每条链都有自己的密钥派生路径,但都来自同一个助记词。

Q:发送方私钥能被看到吗? A:链上能看到签名,但不能反推私钥。

Q:能不能加密码到助记词? A:BIP-39 支持 passphrase。等于"24 词 + 1 词"双因素。

延伸阅读

  • 想看钱包种类:去看 区块链基础 分类
  • 想看私钥安全:去看 风险管理 分类
  • 想看 BTC 原理:去看 BTC基础 分类