加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

浅析区块链隐私保护技术之门罗币

发布时间:2018-10-13 14:39:26 所属栏目:业界 来源:bubbleszz
导读:【新产品上线啦】51CTO播客,随时随地,碎片化学习 一、前言 说起来早期比特币出现的时候亮点应该就是其去中心化的特性以及随之而来的不可篡改性,这意味着我们的账户信息不必提供给某家公司或者政府机构,看起来就比较自由,然而事实上随着政府监管的加强

然后我们来看看stealth address,其实它的中心思想很简单,就是利用接受者的view key的公钥计算出一个临时的一次性stealth address,然后将资金发送到这个地址,然后接收者对区块链进行扫描时发现这笔交易就可以利用自己的view key取走这部分资金,而网络上的其他人并不知道这笔交易是发送给谁的,只有接收者自己知道,从而确保了交易的匿名性

stealth address的公钥的计算方式如下:

  1. P = H(rA)G+B 

其中H()表示门罗币所使用的hash算法,r是发送者选取的一个随机数,G表示的是椭圆曲线的基点,如果不了解的话最好还是先去看看ECC,毕竟这也算是区块链中的基础密码学了,公式中的A和B则分别表示接收者的public view key和public send key。

得到公钥P后再由它得到一个门罗币的地址,这就是一次性的stealth key了。

接下来发送者再计算一个R=rG,然后将R也打包到以P为目标的交易中,将这笔交易广播到链上。

接收者则在这边一直扫描着链上的交易,对于每笔交易,计算:

  1. P1=H(aR)G+B 

其中a为接收者的private view key,因为在椭圆曲线对应的公私钥关系中 A=aG,所以rA=raG=aR,所以当接收者发现P=P1时,他就知道这笔交易是发送给自己的,因为对应的P1只有接收者自己可以计算出来,所以除了他以外别人并不知道该交易的目标地址。

要使用这笔交易,接收者只需计算出对应的私钥:

  1. x=H(aR)+b 

使用该私钥即可签名这笔交易中的资金进行使用。

可以看到接收方这边的压力还是比较大的,需要扫描整个链上的交易,这也是目前门罗币性能的一大瓶颈。

3. 环签名

接下来我们来看看门罗币中用以提供匿名性的另一关键技术,环签名。

其实环签名的中心思想也很好理解,当你直接对一笔交易进行签名时,这笔交易的来源自然就被确定是你,但是如果你另外挑一部分交易进来,将你的签名跟这些签名进行混合,就又得到了一个新的签名,这样别人就无法确定这笔交易是否是来自你,只能判断来自于那些公钥组成的集合,其实这倒是跟混币挺像的。

从2001年第一个正式的环签名方案提出以来,环签名一直在不断地发展完善,现在也算是成熟了,具体的操作方案挺多,不过都看得我有点懵逼,下面我们还是简要地讲讲环签名的流程,如果想了解细节可以看看cryptonote 2.0的白皮书里的签名方案。

首先发送者会确认一个ring size,也就是这个环签名中使用的签名数,一般而言这个ring size越大就代表着对应的公钥集合越大,这也意味着更大的安全性,然而这也将占用更多的空间,会对网络的效率以及区块数据的膨胀,毕竟这都是要存在链上的。

确定ring size后发送方就会随机选择一个ring size-1大小的公钥集合,然后将自己的公钥也添加进去组成一个大小为ring size的公钥集合{P1,P2,P3…Pn},接下来的操作就非常有趣了。

我们将利用这些公钥一同构建一个方程,而要解开这个方程需要你知道这些公钥中的一个对应的私钥,也只需要一个,所以你就可以使用自己的私钥进行解密,然后将这一方程的解与公钥以及选取的参数等打包组成签名发送给验证节点,验证节点对你的签名验证过后就能确认你确实是这笔交易的发送者,但是却无法判断你是公钥集中的哪一个,至于这种方程其实也有很多方案,cryptonote的白皮书中就有一种实现,写的还算详细,不过着实是有点复杂,我也就不细说了(其实还是太菜)。

完成了环签名过后你可能还是有很多疑惑,比如在无法确认发送者的情况下如何保证不会出现双花攻击呢,这就要涉及到一个新东西key image了,即I = xH(P),此处的x就是发送方的private spend key,而P就是我们前面提到的stealth address,也就表示是要发送给接收方P的,因为P是一次性的,所以说这个key image是针对每笔交易生成的,也就是说每笔交易的key image都不相同,节点可以通过验证key image来判断这笔交易是否出现过从而避免双花攻击。

4. ring CT

环形加密,即ring CT,应该算是门罗币中比较新的技术革新了,去年才正式应用,它对前面提到的环签名进行了进一步的改进,缩小了签名大小,进一步提升了效率,更棒的是它的出现使得门罗币的交易信息中的金额也得到了隐藏,唯一可见的仅有来自于Coinbase的交易金额,即挖矿所得,这也算是进一步提升了门罗币的匿名性,同时交易大小的缩小也减少了所需的手续费,这还是挺重要的,毕竟门罗币之前就一直为高昂的手续费而为人诟病,这其中很大一部分正是来自于这部分签名。

至于算法的详细流程,有兴趣的话可以去看看它的论文,就不展开说了(毕竟太菜)。

四、写在最后

本文主要还是简单分析了一下区块链的隐私保护形势以及门罗币所采用的一些隐私保护技术,毕竟发展了这么多年,其结构当然不只是我讲的这么简单,研究的过程可能会遇到很多的阻碍,还是不能轻言放弃啊。至于其他几个隐私保护方案后面有空应该也会写写吧,零知识证明很是让人着迷,却也让我极度头疼,此外水平所限,文中如有纰漏还请大佬们指教。

【编辑推荐】

  1. 区块链存自身缺陷 攻击层面多达6个
  2. 揭秘“暗网”:比特币狂欢的暗黑世界
  3. 揭秘比特币历史上六次“至暗时刻”
  4. 揭秘网络犯罪分子如何利用区块链隐藏自己
  5. 区块链黑客:我一天赚了8000美元,感觉就像在天堂
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读