欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

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

来源:本站整理 作者:bubbleszz 时间:2018-10-10 TAG: 我要投稿

说起来早期比特币出现的时候亮点应该就是其去中心化的特性以及随之而来的不可篡改性,这意味着我们的账户信息不必提供给某家公司或者政府机构,看起来就比较自由,然而事实上随着政府监管的加强以及各个交易所的管理的加强,这部分的自由已经受到了极大的限制。
不过这就不是我们要讨论的内容了,今天我们还是从技术的角度来看看区块链上的匿名与隐私,这篇应该算是开篇,所以前面会有一些简单的介绍。

区块链中的隐私保护
为何需要隐私保护
其实比特币在设计之初也考虑过账户与交易的匿名性,因为整个比特币的账户地址几乎是无限的,大家都可以随意创建钱包地址,这样你甚至可以做到每笔交易都拿一个新地址来接收,然而受限于区块链网络的公开性以及带来的可追踪性,对于这些分散的交易你可能需要整合才能进行一笔较大的交易,而这种多输入的交易一旦出现,我们就可以将这些来源地址划分到同一账户下,继而对这些账户进行进一步追踪,这样通过对整个交易网络的分析我们就能得到很多可关联的信息,加上交易金额也是公开的,对于一些特定金额的交易我们也能找到蛛丝马迹,如果对应地址的身份得到确认,通过这些信息就可以推算出更多的地址信息,另外还有找零所使用的零钱地址也会带来信息的暴露,早期比特币的客户端就出现过零钱地址总是在输出地址的第一个的bug,通过这样层层递进我们就可以揭开那些隐藏在比特币网络下的真实身份。
可以看到比特币网络所面对的隐私挑战还是很多的,可以说完全无法满足匿名性的需求,另外由于区块链交易的全程可追踪性,每笔资金的历史都可以查得清清楚楚,这就相当于给比特币都打上了烙印,那些涉及过黑产交易的比特币会永远保持这一烙印,如果这样的钱到了你的手上想必你也不太舒服吧,同时如果你在外使用比特币支付那么别人也能看到你的账户里有多少钱,怎么想这都不太安全
你可能会觉得看上去区块链的隐私保护只是为了隐藏账户拥有者的个人身份信息以及消费信息,不过事实上对于各企业而言区块链的隐私性也是非常重要的,比如某些在区块链上与对方签订的合约,以及跟客户的交易信息等等,很多应该算是商业机密了,这些都需要得到保护。
区块链在隐私保护上的薄弱之处还有很多,这里就不展开说了,一些针对网络的嗅探以及对节点的攻击也非常具有威胁性,不过区块链技术在匿名性上又确实有着得天独厚的优势,也不能就这么放弃了,所以啊凡此种种都在敦促着新的技术的应用
区块链中的隐私保护方案
说了这么多,其实我们关心的也就是交易的可见性,所以后面我主要介绍的也是基于对交易信息进行加密的隐私保护方案,可以说它们是工作在交易层,如果考虑更进一步的话还得想办法应对在更底层也就是网络层面的分析,水平以及篇幅所限就不多说了,有兴趣的可以自行查阅相关资料
目前来说,比较典型的对交易内容进行隐藏的隐私保护方案主要是达世币(Dash)所采用的混币技术,门罗币所采用的环签名与隐秘地址以及zcash所采用的零知识证明,这些都汇聚了很多密码学的知识,深入进去,你会发现它们真的很难,特别是零知识证明,然而又非常让人着迷,这可能就是密码学的魅力所在吧
此外,还有针对智能合约设计的Hawk方案以及针对联盟链的Quorum和Coco框架,也值得了解了解,下面我们简单来看看门罗币所采用的加密方案
门罗币的隐私保护方案
介绍一下门罗币

门罗币应该算是比较出名的加密货币了,现在貌似也超越了达世币成为了匿名货币的老大哥,不过说实话在之前我对它的认识还主要是在挖矿领域,因为它所使用的hash算法比较特殊,不像比特币那样可以通过定制ASIC来大幅提高挖矿效率,比特币的这一特点使得其主要算力几乎完全来自于ASIC,也就是各大矿池,而要针对门罗币定制ASIC则成本会很高昂,而且所获得的提升也没那么大,所以我们可以直接拿自己的电脑来进行挖矿,而不至于像比特币那样被矿池完虐,那些常见的针对服务器的挖矿入侵以及一些网站嵌入的恶意挖矿脚本一般也是针对门罗币的,这些黑产对门罗币的青睐很大程度上也是看中了它的匿名性,大家如果有闲置的服务器倒也不妨拿来挖挖门罗币,收益好的时候说不定可以收回服务器的成本。
门罗币的前身是bytecoin,它的基础是cryptonote协议,至于其特性,也就是在区块链网络上的匿名性,在这里所有的交易数据都是加密的,没人知道一笔交易的输入与输出分别来自哪个账户,所以这里的资金是不可追踪的,看起来很神奇,你一定很好奇这样的话交易该如何确认,毕竟这样别人都不知道你有没有足够的资金来完成交易,下面我们就来看看门罗币所采用的加密方案是如何工作的
Stealth Address (隐蔽地址)
首先我们来看看门罗币所使用的Stealth Address技术,这是门罗币用以提供匿名性保障的关键性技术之一。

与比特币中一个账户地址只有一对公钥与私钥不同,门罗币有两对密钥,可以理解为一对用来支付交易,一对用来查看交易。
用来支付的是spend key,这对密钥中的公钥用来帮助我们参与后面的环交易,并对key image的签名进行验证,而私钥则用以创建key image。用来查看的是view key,这一对密钥中的公钥就是用来生成我们的一次性的Stealth Address,而私钥则是接收者用以扫描区块链来查看发送给他的交易。这部分只是为了把概念给引出来,看不懂也没关系,后面我们再做说明。
门罗币的地址主要就是由上面的两部分密钥的公钥组成,基本结构大致如下:
网络编码(1 byte)+public spend key(32 byte)+public view key(32 byte)+校验和(4 byte)

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载