省流:用户把身份证给签发者,签名后验证者可以验证用户身份满足要求而不泄露其他额外信息,以及签发者可以是分布式的。


先说 BBS 是什么,来源于 Boneh, Boyen (与 Shacham) 于 2004 年发表的两瓶论文,欧密上的 Short Signatures Without Random Oracles. 和美密上的 Short Group Signatures。原版本 BBS 短签名针对单一消息进行签名,能够在不用 Random Oracle 的理想模型下,利用强 DH 假设(q-SDH)实现短签名(DSA签名的一半)。

接下来就是 BBS+,本次的重点,是发表于 04 年美密上的 Signature Schemes and Anonymous Credentials from Bilinear Maps.,能够输入多条消息并输出一个固定长度的签名,有点像聚合签名,这是之后把身份证上的姓名性别年龄等信息聚合成一个签名的前置条件,并通过零知识证明向验证者证明“我拥有这组消息的有效签名”。构建了高效的匿名凭证(Anonymous Credentials)系统和群签名系统 ,目前 Web3 (DID/VC) 据说也广泛采用 BBS+。

聚合签名 如 BLS,是将多个签名合为一个签名,解决的是多方问题,并具有一定的同态性;而 BBS+ 是 多消息签名为单个签名,并能够结合 ZKP。

BBS+ 允许选择性披露,比如证明你大于18岁,但不暴露具体生日,具有极强的隐私保护能力,但是实际落地和标准化时遇到了阻碍。BBS+ 不能成为标准的主要原因是 BBS+ 需要 pairing。随机化是为了实现不可链接,但是随机化过程有安全问题(安全硬件无法执行密钥随机化 Key Blinding)。

然后进入核心部分,也就是 BBS# 和基于门限的 BBS+。

然后 BBS#,也就是MAC_BBC,对应 25 年的论文 Making BBS Anonymous Credentials eIDAS 2.0 Compliant. ,现在还是预印本。应用场景是普通手机安全芯片不支持双线性配对,而使用 MAC_BBS 用零知识证明取代配对,并结合 Oblivious Proof Issuance 等技术,交互也只需要两轮(前人需要 3-4 轮),在手机上+无须配对+匿名 运行 BBS# 短签名 。

Threshold BBS+ 是对 BBS+ 签名以及 ECDSA 的门限化。发表于 24 年的 NDSS ,论文名称 Secure Multiparty Computation of Threshold Signatures Made More Efficient。目的是解决分布式协同签名的性能瓶颈,引入门限线性同态加密技术,分布式密钥生成 DKG 轮数压低到了 2 轮,并将通信复杂度降到了常数级 $O(1)$,同时保持了强鲁棒性。但是这个依旧依赖于配对。