首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【硬核】CryptoNote协议

净化币圈环境从我做起,大家好我是币圈驴把头!

背景

2012年12月,第一个针对数字通证隐私问题的协议——CryptoNote问世。该协议介绍了两种技术:隐私地址技术和环签名技术,分别提供对数据接收方和发送方的隐私保护。2013年10月名义撰写人Nicolasvan Saberhagen更新了CryptoNote第2版。基于CryptoNote协议的匿名数字通证有很多,包括Bytecoin、Monero和Particl(Monero和Particl使用RING-CT协议,此协议基于CryptoNote发展而来)。

本篇文章主要是给大家讲一下CryptoNote的匿名技术:隐私地址技术和环签名技术。

隐私地址技术

隐私地址技术是隐藏实际交易地址的技术,该技术主要提供对数据接收方的隐私保护。

用户进行BTC交易时将在公共区块链上生成一份标准的BTC交易记录,交易记录包含接收方的地址,BTC使用假名技术保护接收方的地址隐私,但是区块链的公开透明性使追踪者能够将特定假名的所有交易相关联,进而结合其他信息和方法可能追踪到实际交易者。

CryptoNote的隐私地址技术使用一次性隐匿地址(后称混淆地址)降低不同交易之间的关联性,发送方和接收方可通过密钥确认交易是否有效。

相较于其他的隐私策略,隐私地址技术具有多重密钥的特性。接收方具有私钥b和公钥B(B=bG),G为椭圆曲线上的一个点。发送方在交易时取得接收方的公钥B,生成混淆地址P。该地址由两部分构成,一部分由接收方的公钥B经过哈希生成,这一过程加入了只有发送方拥有的随机数r;一部分为接收方的公钥B。

在交易的开始阶段,支付方Alice获得接收方Bob的公钥B,结合随机数r经过哈希和椭圆算法获得混淆地址。混淆地址P生成后被矿工记录上链。接收方可以在链上获取随机数r经椭圆算法运算后的R(R=rG),且bR=brG=rbG=rB,根据此等式接收方可使用R、私钥b和公钥B生成相同的混淆地址:

接收方通过R、私钥b和公钥B检验区块链上的所有交易地址以确认是否存在自己的交易。检查等式如下:

隐私地址技术使用一次性的隐匿地址,极大地增强了交易接收方的安全性,保证通信接收方的信息隐私。

环签名技术

相比于隐私地址技术,环签名技术能够提供对数据发送方的隐私保护。环签名技术借用无法追溯来源的共同签名实现数字通证交易签名混淆化。共同签名混合一群信息发送方的签名,其中之一是信息真正的发起者,其余来自于区块链网络。后者从区块链曾记录的无数签名中提取而来,被称为诱饵(decoy)。

环签名技术涉及密码学中的单向陷门函数,该函数首先是一个单向函数,通过不对称算法保证不可逆性(即正向计算容易而反向计算困难,例如函数y=f(x),若已知x欲求y很容易,而已知y欲求x=f^-1(x)则很困难)。其次具有一个特定陷门(也称后门),若知道陷门m可以很容易地计算出x=f^-1(x)。在基于单向陷门函数的公开密钥密码体制中,公钥是公开可查的,可用于加密信息,且仅有拥有私钥的接收方可以使用私钥对加密信息进行解密。

生成签名。利用发送方私钥与一组区块链上的随机公钥进行运算形成环签名。首先,发送方从区块链上获得r个混淆公钥Pi(i=1,2,…,r),生成随机数xi(i=1,2,…,r)并通过r个公钥加密生成yi(i=1,2,…,r)。然后选取随机数v,并通过特定算法(此算法中,v和yi为参数)生成ys。作为私钥的拥有者,发送者可以很容易地利用私钥和ys计算得到xs。最终的环签名P由以下参数组成(其中Ps是发送方的公钥)。

验证签名。验证者使用环签名中的参数xi(i=1,2,…,r),xs经过各自对应的单向陷门函数(即Pi,Ps),求得相对应的输出值yi(i=1,2,…,r),ys,最后将yi,ys经过上述特定算法的逆运算得到v',对比验证环签名中v=v',若等式成立则环签名有效。

环签名技术在信息发送环节加入了不可分辨的无效信息,从而能够保护发送方的信息隐私。在签名验证环节通过验证整体的签名即可确认交易信息的有效性。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190813A0GYFK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券