Elea Notes.

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

数字签名

用只有你知道的私钥给一段数据盖章,任何人都能用你公开的公钥验证这个章是真的、且数据没被改过。

也称:digital signature、签名、digitally signing、signature、验签

一句话

手写签名的问题是它跟被签的内容无关——把签名剪下来贴到另一张纸上一样有效。数字签名把签名和内容绑死:内容改一个字节,签名立刻失效。

三个操作

生成密钥对。 一个私钥(自己藏好),一个公钥(随便公开)。

签名。 用私钥对数据算出一小段签名。做不到反推私钥。

验证。 任何人拿公钥 + 数据 + 签名,能判断这三者是否匹配。

关键的不对称:签名需要私钥,验证只需要公钥。所以”证明我授权了这件事”不需要向对方泄露任何秘密。

它证明了什么,没证明什么

证明了两件事:这段数据出自持有那个私钥的人(真实性),且签名之后没被改动(完整性)。

没有证明的:签名者是谁。公钥只是一串数字,它本身不携带身份。把公钥对应到真人需要额外机制(证书、实名登记、社会关系)——而比特币故意不做这一步,白皮书第 10 节把这一点当成隐私特性来用。

也没有证明的:这段数据是第一次出现。签名无法阻止同一份签名数据被重复提交,这正是双花问题的根源。

在比特币里

白皮书第 2 节把一枚币定义成”一串数字签名”:每次转手,付款方用自己的私钥对「上一笔交易的哈希 + 收款方公钥」签名。收款方验签就能确认这条所有权链一路上都是被正确授权的。

值得注意的是白皮书只说了 digital signatures,从未指定算法——ECDSA、椭圆曲线这些词在九页原文里一次都没出现。