群签名
群签名概念
群签名(Group Signature)是一种能保护签名者身份的具有相对匿名性的数字签名方案,用户可以代替自己所在的群对消息进行签名,而验证者可以验证该签名是否有效,但是并不知道签名属于具体哪位群成员。同时,用户无法滥用这种匿名行为,群管理员可以通过群主私钥打开签名,暴露签名的归属信息。群签名的特性包括:
- 匿名性:群成员用群参数产生签名,其他人仅可验证签名的有效性,并通过签名知道签名者所属群组,却无法获取签名者身份信息;
- 不可伪造性:只有群成员才能生成有效可被验证的群签名;
- 不可链接性:给定两个签名,无法判断它们是否来自同一个签名者;
- 可追踪性:在监管介入的场景中,群主可通过签名获取签名者身份。
群签名的一般流程
1. 初始化
群管理者建立群资源,生成对应的群公钥(Group Public Key)和群私钥(Group Private Key)群公钥对整个系统中的所有用户公开,比如群成员、验证者等。
2. 成员加入
在用户加入群的时候,群管理者颁发群证书(Group Certificate)给群成员。
3. 签名
群成员利用获得的群证书签署文件,生成群签名
4. 验证
同时验证者利用群公钥仅可以验证所得群签名的正确性,但不能确定群中的正式签署者。
5. 打开
群管理者利用群私钥可以对群用户生成的群签名进行追踪,并暴露签署者身份。
群签名案例——匿名竞拍
在匿名竞拍场景中,各个竞拍者不想让其他竞拍者知晓自己的竞价的情况,但又需要知道每次竞价的真实性和可靠性。与此同时,拍卖商最终需要确定最终竞拍人与其进行交易,防止其对自己的竞拍结果抵赖。在这种场景下,群签名方案是一种较好选择。
1.匿名竞拍场景中,拍卖商作为群管理者可建立群组,所有竞拍者加入群组。
2.拍卖商生成群私钥与群公钥,私钥由拍卖商自己持有,并将群公钥向群内所有人公开。
3.每一个竞拍者入群,群管理员均需向其颁发群证书。
4.每一次竞价时,竞拍者利用群证书签署文件生产群签名。
5.群内的每个人都可以成为验证者,利用群公钥对群签名进行验证,可验证本次竞价的正确性,但不知道具体是何人发起的。
6.竞拍即将结束时,拍卖商利用群私钥对群签名进行追踪,知晓竞拍者身份,与其达成竞拍协议,保证整个过程的私密性。
环签名
环签名概念
环签名(Ring Signature)是一种特殊的群签名方案,但具备完全匿名性,即不存在管理员这个角色,所有成员可主动加入环,且签名无法被打开。环签名的特性包括:
- 不可伪造性:环中其他成员不能伪造真实签名者签名;
- 完全匿名性:没有群主,只有环成员,其他人仅可验证环签名的有效性,但没有人可以获取签名者身份信息。
环签名案例——匿名投票
匿名投票场景需求广泛存在,如股东大会投票,选举投票等,投票者既需要通过,保障自己的正当诉求,同时不想向公众暴露投票结果。此时,采用区块链+环签名的技术,可以很好解决这类问题,
1.为环中每个投票者生成一个密钥对。
2.投票时,投票者使用自己的私钥与任意其他成员的公钥生成消息签名。
3.环中每个投票者可以验证消息是否是本环中成员所签署。
4.与群签名不同的是,没有人拥有管理权限,也没有人可以追踪到任何投票人。