Telegram Channel
前文介绍了 AC(Anonymous Credential) 的概念和基于 RSA 的 CL-Signature。这篇笔记则介绍了基于 ECC 的 BBS+ Signature,从性能上来说会比 CL-Signature 更好。

我此前对 AC 的理解存在一些偏差,Anonymous 最侧重保护的不是被签名的隐私数据(witness),而是数据拥有者(Holder)的身份。其应用场景是,当 Holder 为自己的 witness 提供 statement,Verifier 在验证这个 statement 的时候,也无法揭露 Holder 的身份。

拿传统的非对称签名来举个例子,会有三个角色:根证书持有者(Issuer),隐私数据拥有者(Holder),验证者(Verifier)。Holder 需要从 Issuer 获取自己的个人证书,用自己的私钥对 witness 进行签名生成 statement,然后将 (公钥证书链、statement、witness) 一起提交给 Verifier。Verifier 预先已信任了 Issuer 的根证书,从而验证了 Holder 的公钥可信,然后用 Holder 的公钥验证 statement,最终确认 witness 的真实性。

为了提高隐私性,上述描述中有两个需要改进的需求:

1. 匿名性:Holder 的公钥证书暴露了自己的身份信息(attributes)
2. 零知识:Holder 为了验证向 Verifier 披露了 witness 的明文

这两个需求分别对应密码学的两个方向,前者是 anonymous credential,后者是 ZKP,分别有不同的协议家族和应用。虽然这两者的实现和应用很多时候互相交织,但是核心目的是不一样的。
 
 
Telegram Channel