区块链密码基础之签名算法(二)

语言: CN / TW / HK

阅读: 3

推荐阅读: 区块链密码基础之签名算法(一)

一、引言

区块链的匿名性是指用户在区块链网络中使用假名进行活动,其本质为非实名性。而对于某一假名,其交易数据都记录在公共账本上,任何人都可以获取其交易数据信息,攻击者可采用聚类分析等技术推断这一假名的真实身份,故而存在隐私泄露问题。因此,如何增强区块链的匿名性成为了需要研究的问题。环签名是一种特殊的数字签名算法,它可以实现在生成数字签名的同时不泄露谁才是真正的签名者,是一种匿名的数字签名技术。

环签名最早由Rivest等人在文章《How to Leak a Secret》[1]中提出,他们用一个有趣的例子描述了环签名的应用场景:假设Bob是内阁成员,他要向报社举报总理的某些不法行为。在这一过程中,Bob不能暴露自己的真实身份,但又需要向报社证明这一消息确实来源于内阁成员。对此,Rivest等人提出了环签名算法来解决这一问题。与传统的群体签名方案不同,环签名不需要设置可信中心,签名者可以独立完成签名过程,不需要其他成员的参与协助,同时实现消息签名与隐私保护。

本文将简单介绍环签名的相关内容,如算法原理、安全性要求、环签名分类、在区块链中的应用与不足等。

二、基本原理

环签名中存在一组成员,称这一组成员为环成员,环成员之间没有协作,且签名过程不需要可信第三方参与协作。环签名允许签名者任意选择一组环成员并将自己隐藏于其中,使得所有成员看起来都有成为实际签名者的可能,签名者用自己的公私钥和其他环成员的公钥进行签名。验证者验证签名后无法判断环成员中哪一名成员是实际签名者,但是可以确认签名者一定在环成员中,从而满足签名者的匿名性。最早的环签名算法是由Rivest等人基于DLP假设,通过使用陷门置换巧妙的构造环方程所构成。该环方程中从起始点输入验证数据,循环计算一圈后得到的最终输出等于初始输入,闭合成一个类似于环形的结构,如图1所示,故得名环签名。

图1 环签名结构示意图

实际上,此类环签名可通过对普通公钥密码体制进行扩展而得到,Rivest等人在其论文中分别给出了基于RSA体制和Rabin体制的环签名算法构造。这里我们介绍一种以椭圆曲线公钥体制为基础所构建的环签名算法,其系统参数与密钥生成过程如图2所示。

图2 系统参数与密钥生成

其签名过程如图3所示,通过构成环方程,将签名者的公私钥与其他环成员公钥作为输入,生成环签名。

图3 签名过程

验证过程如图4所示,验证这使用环成员公钥对签名进行验证,验证通过则接受该签名是由环中某个成员签署而无法确定真正的签名者。

图4 验证过程

三、安全性要求

对于一个环签名算法来说,如果它是安全的,则该算法至少满足以下性质:

(1)匿名性:给定一个签名,任何人都无法确定环成员中哪一个才是真正的签名者,若环中有n个成员,那么其他人猜中真正签名者的概率不超过1/n。

(2)不可伪造性:环中其他成员无法在不使用自己的公私钥对进行合法签名的情况下伪造出一个可以通过验证算法的有效环签名,非环中成员即使获得某个有效合法的环签名,也无法伪造一个可以通过验证算法的有效的环签名。

对于上一节介绍的基于椭圆曲线的环签名算法来说,验证者在验证签名时,输入的环成员公钥均匀分布,签名中不存在可能造成签名者身份泄露的信息,故而满足匿名性;由于签名过程需要签名者的私钥参与计算来构造环方程,而私钥只有签名者持有,其他人无法获得,因此满足不可伪造性。

四、环签名分类

随着密码学届专业人士对环签名的深入研究,一些新的环签名方案及环签名思想也随之提出。为满足不同需求,一些新的环签名方案除了具备基本的性质外,还被赋予了额外的属性。目前对于环签名的分类可根据其所具备的特殊属性将环签名分为以下三类:

(1)可链接环签名:Liu等人在2004年提出了可链接环签名[2],为普通环签名增添了可链接性。通过这一属性,任何人都可以确定两个签名是否是由同一签名者生成,但仍无法找出谁是签名者。

(2)可撤销环签名:2006年Au等人提出了可撤销环签名[3],它允许当且仅当一个环签名与另一个环签名相链接时,即确定某个环签名与另一个环签名是同一用户生成时,可以撤销该环签名的匿名性,得到真是签名者的身份。

(3)门限环签名:在普通环签名中,验证者可以验证签名是由某一个成员所签署的,2002年Bresson等人将其扩展成隐藏多个用户的门限环签名[4],即签名是由n个用户组内t个用户生成的,验证者不知道哪t个用户参与了签名生成过程。

五、环签名在区块链中的应用

  • 应用

在众多基于区块链的数字货币中,门罗币(Monero)正是最具有代表性的使用环签名来增强其隐私保护能力的数字货币,其交易过程如图5所示。其环签名算法采用CryptoNote协议[5],将普通可链接环签名算法扩展为多层可链接环签名算法来混淆交易信息。同时门罗币还将环签名与机密交易相结合,形成环机密交易[6]来隐藏交易发起方身份与交易金额,并使用Borromean环签名实现对隐藏金额的范围证明。在接收方,门罗币使用一次性地址技术来隐藏接收方地址。为避免双花攻击,门罗币使用可链接环签名的可链接性来判断同一账户是否产生两笔花销。

图5 门罗币交易示意图

除了数字货币,还可以将环签名与区块链相结合,应用于其他需要隐私保护的场景中去,如拍卖、电子投票、匿名存证等,保证成员的匿名性和签名的不可篡改性。

  • 优势与不足

优势

与其他区块链隐私保护方案相比,环签名因其特性具有一定优势。传统的混币技术需要可信中心或不同节点间根据协议进行协作来混淆多笔交易信息实现隐私保护,而这种方法无法抵御可信中心或其他参与节点的不诚实行为。而环签名无需可信中心、无需成员间的协作,其安全性依赖于其算法的安全性,相比于混币技术更加安全。对于基于零知识证明的区块链隐私保护方案,其算法非常复杂,并且涉及双线性对运算,尽管安全性较高但不具有较高的计算效率。与之相比环签名算法较为简单,具有更高的计算效率。

不足

尽管环签名可以保护区块链交易隐私,但其仍具有诸多限制。从之前的分析中我们可以看出,环签名的匿名性与环成员数量相关,环成员越多其匿名性越高。然而在传统的环签名方案中,签名长度与环成员数量线性相关,要提高环签名匿名性则会增加签名长度。在区块链交易中,签名长度的增加会导致交易费用的增加,为控制交易成本,一般会限制环成员数量使其匿名性受到制约。尽管如今已有许多对数级环签名方案被提出用于区块链中,但其仍需要区块链用户去权衡匿名性与交易成本。除了签名长度,计算效率也是制约环签名应用的重要隐私。与签名长度存在的问题类似,要提高匿名性则需要增加环成员数量,从而使得签名时间与验证时间增加,降低其计算效率。因此,如何降低签名长度与如何提升计算效率成为了对环签名进行改进与提升的主要研究方向。

六、小结

本文简单介绍了环签名的基础概念、应用与不足。显然,环签名作为一种去中心化的匿名签名算法,与区块链的特点高度契合,可用于区块链上的隐私保护。然而在实际应用中,环签名的缺点仍制约着其在区块链上的应用,对其仍具有非常广泛的研究前景。未来,我们将继续探寻前沿技术,关注最新的高效环签名算法,研究更加完善的区块链隐私保护方案。

参考文献

[1] RIVEST R L . How to Leak a Secret[C]// International Conference on the Theory and Application of Cryptology and Information Security. Springer-Verlag, 2001.

[2] LIU J K ,  WEI V K ,  WONG D S . Linkable Spontaneous Anonymous Group Signature for Ad Hoc Groups[C]// Australasian Conference on Information Security and Privacy. Springer-Verlag, 2004.

[3] AU M H ,  LIU J K ,  SUSILO W , et al. Constant-Size ID-Based Linkable and Revocable-iff-Linked Ring Signature[C]// International Conference on Cryptology in India. Springer-Verlag, 2006.

[4] BRESSON E ,  STERN J ,  SZYDLO M . Threshold Ring Signatures and Applications to Ad-hoc Groups (Extended Abstract)[C]// International Cryptology Conference on Advances in Cryptology. Springer-Verlag, 2002.

[5] VAN SABERHAGEN N. CryptoNote v 2.0[J]. 2013.

[6] SHEN N ,  MACKENZIE A ,  Lab T M . RING CONFIDENTIAL TRANSACTIONS[J].  2016.

版权声明

本站“技术博客”所有内容的版权持有者为绿盟科技集团股份有限公司(“绿盟科技”)。作为分享技术资讯的平台,绿盟科技期待与广大用户互动交流,并欢迎在标明出处(绿盟科技-技术博客)及网址的情形下,全文转发。