有效的数字签名机制是否一定会透露签名方的身份?在不知道签名方身份的前提下,如何验证数字签名的有效性?匿名的签名方案如何支持监管仲裁有效介入?其背后的群签名和环签名技术之间有何区别?
在现代商业活动中,签名机制的字面解释是:为表示同意、认可、承担责任或义务而写下名字,同时验证方可以查验字迹的真实性,以核实签名的有效性。这个过程中,验证方往往可以从“名字”获知签名方的身份。在传统签名机制中,能够获知签名方的身份,是验证签名有效性的必要条件。
这同时也带来了一个问题:如果参与商业活动的协作方,不愿意或者不方便透露自己的身份,那我们还能不能与之签订有效的契约呢?
举个具体的例子,在典型的暗标采购场景中,投标方需要对自己投出的标书进行签名承诺,确保标书的有效性,并体现自己符合一定的资质。与此同时,招标方、招标平台、其他投标方不能通过签名识别出该投标方身份,避免出现围标、串标等潜在不法行为。
解决以上问题的关键,在于将数字签名的可验证性和签名方的身份信息解耦,这里就会用到群签名和环签名技术。这两类技术为何能够实现这样反常理的效果?且随本文一探究竟。
1. 群签名与环签名的匿名性
在实现签名方身份隐匿上,群签名和环签名是最常见的两类数字签名技术,其主要效果为签名的验证方只能验证签名来自于一个群体,但无法准确推断出签名具体来自哪一个个体签名方。
回到之前的暗标采购场景,投标方可以通过群签名或环签名对自己的标书进行签名承诺,招标方和招标平台可以验证该标书是来自一个具备资质的群体,但无法获知其身份信息。
一般而言,一个有效的群签名或环签名算法,除了上一论提到的密码学数字签名的基本特性之外,还具有以下特性:
-
群体匿名:验证方只能验证签名来自对应的群体,但无法精确定位到个体成员。
-
不可链接:对于任意两个签名,验证方无法获知它们是否来自同一的个体成员。
其基本使用过程如下:
-
签名:同一群体中的个体成员使用各自不同的私钥对契约内容进行签名。
-
验签:验证方使用该群体的公钥对签名进行验证。
以上过程与经典数字签名最大的不同在于,尽管签名时可以使用多个不同私钥中的任意一个,但验签使用的却是同一个公钥&