钱包与安全

公钥(Public Key)

又称: 公钥 · Public key

定义

公钥是由私钥通过数学运算得出、可以公开的密钥,网络用它来验证交易签名是否由对应私钥签出,钱包地址也是由公钥进一步计算得来的。

公钥是怎么运作的

公钥和私钥是一对。比特币、以太坊使用椭圆曲线加密,从私钥算出公钥很容易,但从公钥倒推私钥在现有计算能力下不可行,所以公钥可以放心公开。

日常转账时你很少直接看到公钥。钱包会把公钥经过哈希等处理变成更短的钱包地址,你把地址发给别人收款即可。交易发出后,签名和公钥会被链上节点用来核验交易确实出自地址的所有者。

理解公钥的意义在于分清哪些可以公开:地址和公钥可以公开,私钥和助记词绝对不能。有人以“需要你的公钥验证”为名索要助记词,就是典型的偷换概念。

举个例子

可以把它类比成邮箱:公钥像是带锁的信箱的位置和锁的样式,谁都能看到;私钥是唯一能开锁的钥匙。以太坊地址就是对公钥做 Keccak-256 哈希后取最后 20 字节,即 40 个十六进制字符再加 0x 前缀,总共 42 个字符。你把这 42 个字符公开出去收款,不会影响资产安全。

常见误区

  • 把公钥、地址和私钥混为一谈,对方要“密钥”时把私钥发了出去。
  • 以为公开地址会导致资产被盗,其实风险来自私钥和助记词泄露。

继续学习与实操

常见问题

公钥和钱包地址一样吗?

不一样。地址是公钥经过哈希和编码后得到的较短形式,日常收款用地址即可,两者都可以公开。

别人知道我的公钥会怎样?

对方无法用公钥转走你的资产,只能验证签名或查看与之相关的链上记录。需要注意的是链上记录公开,地址的交易历史任何人都能查到。