环签名指的是一种旨在保护签名者
匿名性的
数字签名方案,因签名中某个参数根据首尾相接形成环状而得名。
比特币虽然具有
匿名性,但我们仍然可以在
区块浏览器中查询到每笔交易的金额、发送
地址和接收
地址。这些
地址的公开,使得使用者身份被锁定的风险依然存在。为了解决这个问题,一些
区块链开始使用群签名的方式,对交易双方进行身份保护。交易者与其他用户组成一个群,然后以群的身份进行签名,
验证者只需要
验证出这个签名来自这个群,就会视交易为有效,但
验证者无法得知这笔交易由群里哪位成员发出,因此更能保护隐私。
但是群签名有一定的局限性,因为群内每个成员间权利不同。虽然群签名能够模糊交易发起者的身份,但是群管理员却可以知晓,因此实际上并不能起到完全匿名的作用。
于是在2001年,环签名在群签名的基础上由Rivest等三位
密码学家提出。和群签名一样,环签名的主要原理是通过将交易发送者的
私钥混入
公钥堆里,从而掩盖交易发送者的真实身份。但不同的是,环签名里没有管理员的身份,每个成员都是平等的。除了交易发起人自己,不会有其他人知道交易是谁发起的。著名的匿名币门罗币,采用的就是环签名。
环签名主要依靠椭圆曲线
算法、
哈希算法等
加密算法来运行,大致分为三个步骤:
1.首先抓取一定数量的用户与交易发起者(签名者)一起生成一个签名组,并为每个成员生成
公钥、
私钥。
2. 签名者使用自己的
私钥,和包括自己
公钥在内的整个组所有人的
公钥对交易进行签名。
3.
验证者对环签名进行
验证,如果确认签名出自签名组,交易将被视为有效。
整个签名过程中,除了真正的签名者,其他成员无法得知签名者是何人。
环签名的特点
无条件匿名性
使用环形签名进行的交易,交易发起者的
地址不会显示在
区块链的交易记录中。即使
黑客获取了所有人的
私钥,也无法确认到底是具体哪个人发起的交易。因此极具私密性,能够极大的保护交易发起者的身份。
不可为造性
环内每个成员的
公钥、
私钥采用的生成机制都是有差别的。环成员之外的人员不会知道内部成员
私钥,因此不可能生成一个合法的签名,安全度高。
正确性
如果按照正确的签名步骤对交易进行签名,并且在传播过程中签名没被篡改,签名可以被其他所有人进行有效
验证。