加密世界一切的基础是非对称加密——公钥和私钥成对存在,作用不对称。这一课用最朴素的类比讲清楚。打开 币安官网;下载 币安官方APP;iPhone 用户先看 iOS安装教程。
为什么需要公私钥
传统密码(对称密钥):你和我用同一个密码加密解密。问题:密码怎么安全交换?
非对称密钥:
- 一对密钥(公钥 + 私钥)
- 公钥加密,只能私钥解密
- 私钥签名,公钥验证
- 公钥可公开,私钥保密
这解决了"密码交换"难题。
一个邮箱锁的类比
想象一个邮箱:
- 你给所有人一把"投信钥匙"(公钥):能投信但不能取
- 你自己保留"取信钥匙"(私钥):能开邮箱取信
- 任何人想给你私信,用投信钥匙锁起来投进去
- 只有你能用取信钥匙打开
公私钥就是这种"单向"逻辑。
数字签名的逻辑
签名是反向用法:
- 你用私钥"签名"一段话
- 别人用你的公钥能验证"这签名是 A 写的"
- 但别人不能伪造你的签名
这就是为什么链上转账需要私钥——你必须签名才能转出资产。
公钥就是地址(差不多)
加密钱包里:
- 私钥 → 通过算法生成公钥
- 公钥 → 通过哈希生成地址(如 0x123...)
- 地址公开,公钥也公开
- 私钥永远不出钱包
你给别人地址收钱,别人转账时往这个地址转。
私钥的几种格式
私钥本身是 256 位的随机数(约 78 位十进制数)。常见展示形式:
- WIF:经过编码的字符串
- Hex:32 字节十六进制(比特币)
- 助记词:12 / 24 个英文单词,等价于私钥
- Keystore JSON:加密文件
最常用的是助记词——人类好记好抄。
助记词怎么算出私钥
助记词通过 BIP-39 标准转化:
- 12-24 个单词组合
- 通过 PBKDF2 算法 + 盐(可选密码)
- 得到种子(512 位)
- 通过 HD(Hierarchical Deterministic)派生出无数个私钥
所以一个助记词 → 无数个钱包地址。这是为什么 MetaMask 能从一个助记词生成多个账户。
椭圆曲线
加密用的非对称算法是 ECDSA(基于椭圆曲线):
- BTC、ETH 用 secp256k1 曲线
- 比 RSA 更高效
- 椭圆曲线不变 = 全球加密币兼容
一些细节误解
误解一:地址就是公钥
不完全是。地址是公钥经过哈希后的"指纹"。地址比公钥短,且不能反推公钥(除非已签名)。
误解二:私钥是密码
不是。私钥是数学密钥。密码可以"找回"(重置),私钥"丢了就丢了"。
误解三:助记词可以改
不可以。助记词由生成算法决定,改一个字母就完全不同的钱包。
一份"安全心智模型"
理解这几件事:
- 私钥就是钱。私钥决定一切。
- 公钥可以公开,但你的钱包里的钱是私钥决定的。
- 签名 ≠ 转账。但签名某些恶意消息也可能损失资产。
- 地址生成不出私钥。所以别人知道你的地址不能盗你钱。
几种"被骗的签名"
警惕这些场景:
- 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基础 分类