什么是 Public Key?
Public Key 是你钱包加密体系中可以共享的那一半。别人用它来找到你并验证你的签名,你的秘密仍然保留隐藏。把它想象成邮箱上的标签:任何人都能看到,只有你能打开箱子。
“如果有人知道我的 Public Key,他们就能拿走我的币。”不会的。你是用你的 私钥 来花费。Public Key 的那一半只允许别人检查你的签名并把资金导向你。
Public Key 如何工作
简要流程,不啰嗦。想象你在早午餐后给朋友发一些加密货币。
- 步骤 1:你的钱包在后台创建一个秘密密钥并计算出对应的 Public Key。
- 步骤 2:当你点击发送时,钱包用秘密对交易进行签名;网络可以用 Public Key 来校验签名。
- 步骤 3:你的朋友分享他们的一个地址,该地址是从他们的 Public Key 派生出的短形式,你将款项发送到该地址。
- 步骤 4:节点检验数学关系以确认签名与公开信息相匹配。
- 步骤 5:同样的流程也适用于用钱包登录应用、消息认证等场景。
这就是流程,清晰且可预期。
为什么 Public Key 很重要
即便你只是对加密感到好奇,也值得了解原因:
- 好处:开放信任:任何人都可以验证交易而无需看到你的秘密。
- 视角:它是用钱包登录和消息验证的基础,但要警惕那些要求你批准任意内容的伪造请求。
- 相关性:你的链上身份和 DAO 的投票常常依赖相同的加密密钥。
如果你的链使用地址,优先分享地址而不是原始的 Public Key。同一目的地,更好隐私,减少复制错误。
Public Key 的主要特性
让它运作的那些特征:
- 可共享:可以安全发布或发送;它本身不能移动资金。
- 派生:由秘密通过难解的数学计算得到;反向求出秘密并不现实。
- 非对称:一把密钥用于签名,另一把用于验证,这实现了公开验证。
- 格式:可以是压缩、未压缩或仅 x 坐标,取决于钱包。
- 可移植:在支持相同链与曲线的应用之间可通用。
Public Key 如何计算?
在比特币和许多链上,公点 K 是通过将私有数 k 与椭圆曲线 secp256k1 上的已知基点 G 相乘来计算的。
K = k × G 其中 k 是你的秘密整数,G 是约定的起始点,所有运算都在有限域上进行,这使得逆推过程极其不切实际。
变体
你会看到的不同表示方式:
- 压缩:较短的形式,保留 x 坐标并带有 y 的小提示。
- 未压缩:较长的形式,包含 x 与 y 两个坐标。
- Xonly:用于 Schnorr 风格的签名,仅需要 x。
共享没问题,但一旦公开并且后来将其与身份关联,这种连接会长期存在。
示例
你扫朋友的二维码并给他发送 USDC;二维码编码的是一个由其 Public Key 生成的地址,因此资金会到达正确的位置。
有趣的事实
Public Key 密码学由于 Diffie、Hellman、Rivest、Shamir 与 Adleman 而进入主流;比特币让基于椭圆曲线 secp256k1 的变体受到关注,这个古怪的选择至今仍在论坛引发大量讨论。
总结
把它当作你在加密世界里的公开徽章:容易分享、容易验证,足够强大让陌生人在不见面前就能信任你的操作。
