Elea Notes.

词条 · 加密与分布式 · 入门

公钥密码与数字签名

一对钥匙:私钥只有你有、用来签名;公钥人人可见、用来验证签名确实出自你手。

也称:公钥、私钥、数字签名、公钥密码、签名、public key、digital signature

一句话

传统的锁,开门和锁门用同一把钥匙。公钥密码用一对钥匙:私钥你自己藏好,公钥可以印在名片上。私钥能做的事,公钥能验证,但公钥推不出私钥。

数字签名解决的是”确实是你说的”

现实里签名靠笔迹,数字世界靠这套机制:

  1. 你用私钥对一份消息做运算,产出一段签名
  2. 任何人拿你的公钥 + 消息 + 签名,一算就知道:这签名是不是这把私钥对这条消息做的。

两个结论同时成立:来源可信(只有握私钥的人签得出)和内容未改(消息改一个字,签名立刻验不过)。

关键点:签名不等于加密

签名不隐藏内容。比特币交易是完全公开的,谁都能看到金额和地址;签名只证明”这笔钱的主人授权了这次转移”。保密和证明来源是两件不同的事。

在比特币里的角色

一枚币的所有权,就是”能对它做出有效签名的那把私钥”。转账 = 用当前主人的私钥签一份「把这枚币转给下一个公钥」的声明。所以:

  • 丢私钥 = 丢币。没有客服能帮你找回,因为系统里没有”你”这个身份,只有”能不能签出有效签名”。
  • 签名能证明授权链条,但单靠签名证明不了这枚币没被花过第二次。这个缺口正是白皮书要解决的问题。