![](https://i-blog.csdnimg.cn/blog_migrate/d26c0a54be794f9c8a4e7bf5115e5e8c.png)
【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】
8.7环签名在区块链中的应用
2013年,Saberhagen等人基于环签名技术提出CryptoNote协议,该协议提出了匿名电子现金系统在隐私方面需要满足的两大特性,并针对这两大特性设计协议。
不可追踪性:对每个交易输入,所有可能的交易发起者都是等可能的
不可链接性:对任意两个交易输出,不能证明他们是否发送给同一用户
为了满足不可链接性,发送给同一接受者的不同资产需要发送到不同的地址,在传统区块链系统中,这需要接受者每次都生成新地址并从私密通道传递给发送者。在实际应用中,这给交易双方都带来不便。
为了解决这一问题,CryptoNote采用了一次性公私钥对的方式,发起者可以根据接受者的长期公钥生成新的一次性公钥,新公钥只有接受者能计算出对应的私钥,并且不能被其他用户关联到接受者的长期公钥。这样,在保证了同一接受者每次交易存在不同接受地址的同时,发送者不需要接受者告知新公钥,可以独立构造交易。
采用一次性公私钥对完成交易的流程如上图,分为交易发起者生成交易与接受者检查交易两部分:
交易发起者生成随机数与接受者公钥计算一次性公钥,作为交易的目标地址,并在交易中公布随机数对应的交易公钥。
交易接受者用私钥与交易公钥计算一次性公钥判断是否为交易目标地址:如果匹配,则能用私钥对该输出资产进行签名并使用。
为了满足不可追踪性,在发起交易的时候,CryptoNote协议在一次性公私钥对的基础上采用一次性环签名技术保护交易发送者隐私。
一次性环签名同样分为生成签名与验证签名两阶段,并利用私钥哈希值作为快照保证资产对应私钥只进行过一次花费。交易赎回后即丢弃,保证交易目标地址不会重复。
CryptoNote协议在交易中采用一次性公私钥对保护了接收方的隐私,采用一次性环签名保护了发送方的隐私。但CryptoNote协议采用环签名保护用户隐私的主要问题在于用户隐私依赖于选择的公钥集合,一旦集合中的其他用户公开使用了资产或发生隐私泄漏,导致输出被关联到对应地址,则该用户的地址关联情况也会被攻击者分析得出,导致隐私泄漏。
今天的课程就到这里啦,第八单元的学习到这里就全部结束啦,大家记得复习哦,下节课我们将开始学习群签名及其在区块链中的应用,敬请期待!
同学们可以关注点宽学园,每周持续更新区块链系列课程,小宽带你进入区块链世界。我们下节课见啦。
【区块链与密码学】课堂回顾: