APP下载

浅谈对区块链的攻击方式与安全性

2018-03-07孙国钰

网络安全技术与应用 2018年8期
关键词:挖矿算力矿工

◆孙国钰

浅谈对区块链的攻击方式与安全性

◆孙国钰

(青岛大学计算机科学技术学院 山东 266071)

区块链是一种新兴的分布式数据存储技术,具有不可更改、不可伪造的安全特性。自“中本聪”于2008年提出点对点的数字货币——比特币的概念后,区块链作为其底层技术得到了广泛的重视。尽管区块链技术很强大,但总有办法攻击它。本文第一部分简述区块链技术的特点与应用;第二部介绍双重支付、日蚀攻击等常见的攻击方式;第三部展示解决方案和研究成果;最后总结与展望区块链技术未来的发展。

区块链;攻击方式;安全性

1 区块链技术概述

区块链是一种“去中心化”、“去信任化”和公开透明的数据存储技术,可以不依赖第三方可信机构在陌生节点之间建立点对点的可信价值传递,并降低交易成本,提高交互效率。区块链技术是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。通常,共识机制指使区块链节点的状态达到一致的算法。区块链技术是以块链为数据结构来验证与存储数据、以分布式节点共识机制来生成和更新数据、以密码学的方式保证数据传输和访问的安全、由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的基础架构与计算方式。它革命性地解决了“拜占庭将军问题”,并已逐步应用到如金融、版权、物流、医疗等其他更广阔的领域,未来还会为技术及经济社会发展做出更多贡献。

随着近年来数字货币价格的持续走高,也出现了许多“暴利”诱惑下对区块链的攻击者。好在问题与解决方法总是同时产生。现对已出现的几种攻击方式作大致总结,并列出解决与与研究成果如下文。

2 目前存在的主要攻击形式

对区块链的攻击可分为两类:一是对区块链完整性及共识机制的攻击,如双重支付攻击、自私挖矿攻击等;二是通过点对点的节点进行通信时使用的网络协议的攻击,如日蚀攻击等。

2.1 双重支付攻击

双重支付[1]攻击有两种类型:一是攻击者使用一笔金额,同时和多个对象进行交易。若这些交易对象在交易未被记录进合法区块链的情况下,完成了交易,则攻击者到达了双重消费,甚至多重消费的目的。尽管在多次交易中,仅会有一笔被认为合法并记入链中,但交易对象已完成了交易,因此攻击者可以从中获益。

二是攻击者利用自身强大的算力发起双重消费攻击。攻击者利用同一笔金额,在第一笔交易完成并记录进区块链后,利用其具有的强大算力,可将第二笔交易记录在私人区块链中;攻击者会继续在私有链上挖矿,直至挖一条合法的更长的链取代之前的公共链,使得第二笔交易也得到确认,完成交易。

2.2 自私挖矿

如果一群矿工,采用自私的挖矿战略并获得成功,则可能会使诚实矿工的工作无效。具体表现为:一个恶意的采矿池决定不发布他发现的块,而后创建一个分叉,网络中会同时存在由诚实矿工维护的公共链和恶意采矿池的私人分叉。恶意采矿池在私人分叉上继续挖矿。当私人分叉比公共链长时,便发布此链取代原公共链。此时,原公共链及其包含的诚实数据将被丢弃。研究表明,一般情况下采用自私挖矿策略的恶意采矿池将获得更多的受益。

2.3 日蚀攻击

日蚀攻击利用节点间的广播特性进行攻击。具体做法如下:攻击节点将随机选择 8 个其他对等节点,并“策略性”地控制受害节点所有信息的接收与发送;通过使受害节点的入站连接数量达到上限,从而阻止其他合法节点的连接请求。当受害节点的链接数量达到上限时,这些对等节点会重新启动。重启后的节点仍会首先收到来自攻击节点的连接请求和无用信息,进而被比特币系统“隔离”出来,使受害节点的采矿无效。通过日蚀攻击,恶意攻击者可以进一步入侵并修改受害节点的路由表,并进行如路由欺骗、存储污染、DoS攻击等的操作。

2.4 其他攻击方式与安全性

除上述常用攻击外,还有扣块攻击、物理攻击等。当然,区块链的安全性不仅取决于对其的攻击,从区块链应用及区块链本身的角度,秘钥保护,数据隐私及匿名性[2],底层哈希等技术的安全性等亦是是需要考虑的因素。解释来说,数据的隐私及匿名性是因为区块链系统的比特币技术本质上不完全透明:这些交易永久的存在于分类公开账本中,每个用户不但可以看到余额,还可访问与比特币地址相关的交易信息。因此,攻击者也可通过收集用户在交易或特殊情况下显示出来的特定信息,来进一步推测用户的真实信息和个人隐私等。

基于Merkel树结构的哈希函数第二原像攻击[3]是一种新提出的,利用区块链默克尔树树中哈希函数叶子节点的哈希值具有同样地位而构造的对已存在区块发起第二原像攻击的方法。该方法并从理论上分析证明了较平凡搜索攻击具有更低的复杂性。

3 应对方法与研究

对于第二部分提到的攻击形式,现归纳解决方案及文献成果如下:

3.1 双重支付攻击

一般认为,当一笔交易被重复6次以上确认时,便不可更改。后续的篡改耗费巨大的计算资源。因此进行大宗交易时,应等多次确认后再完成交易(如交货、纸质签字等)。此外,随着计算机技术的发展与算力的指数倍增长,依靠单个矿工或几个矿工在全网所占高比例算力的可能性越来越小,篡改的难度越来越大,此种风险带来的威胁也将逐渐减小。

3.2 自私挖矿

区块链的工作量证明机制(PoW)主要特征为:客户端需要通过做一定难度的工作得出一个结果,但验证方却很容易通过结果来检查出客户端是不是做了相应的工作。具体到比特币,矿工需要在满足全网目标难度的情况下求解SHA256算法。工作量证明机制通过耗费大量的算力,使得攻击者想要篡改数据的成本急剧增加,同时维持了比特币系统的安全性和稳定性。PoW实际为一个复杂的过程,加之网络中大量诚实矿工的存在,可在一定程度上避免自私挖矿的安全风险;补充来讲,区块链诱人的奖励机制也会鼓励矿工们诚实工作。

3.3 混合地址机制

混币机制最早由Gregory Maxwell在比特币论坛上提出,其中心思想为在不改变交易结果的前提下,改变交易过程,使攻击者无法直接获得交易的完整信息。具体来讲,可在一个交易中包括大量输入和输出,使很难在输入和输出中找出每个人的对应对,将输入与输出之间的联系切断,从而较好地保护用户了隐私,提高了通信的匿名性。

3.4 安全检测模型

安全检测模型[4]是一种新提出的,以实验量化各种攻击方式对区块链造成的影响的方法。具体操作为:以51%攻击(指若一群矿工控制了整个区块链网络51%的算力,它们联合起来可通过故意制造分叉或拒绝服务的方式来阻止特定交易或特定钱包地址,从而攻击整个区块链系统)为唯一攻击参照,同时使用两种算法来模拟诚实矿工和攻击者的行为,并记录不同的参数环境中区块链的状态(真实环境中认为一个区块连接超过6个块后则无法改变,记为稳定状态;因此整个系统的状态可认为是无限循环的)变为攻击成功状态的概率。当概率达到某个值时,可以向区块链中用户发送提示消息,延长交易确认的时间,从而降低攻击的风险。

新兴“区块链+”正蓬勃发展并向更多领域迈进。当部署新的应用在区块链时,若初始化某个全新的区块链,要保证网络中没有大量恶意节点,即使从经济社会的的角度来说,也是十分困难的。因此,研究者们提出不建议从零开始设计一个新的区块链,尽量利用已有的比特币系统或者已有的某个安全稳定的区块链上部署区块链应用,可在一定程度上确保新应用数据完整性和隐私性。

4 总结

区块链作为一种去中心化、去信任化的分布数据存储系统,以其独有的安全性,已从最初的比特币系统推广到金融、医疗、艺术、版权等其他领域。它的不可篡改,防伪溯源、公开透明的特性为其他传统的技术或中心化问题提供了新思路,并为社会经济生活带来了创新与优势。区块链实现了在缺少可信任的中央节点或可信任的通道分布式节点的共识问题,并得到了越来越多的关注。可以预见在未来依然少不了对这项日渐成长的技术的攻击,但随着实践的发展与研究,终会使这项技术更加茁壮与成熟。未来区块链也许会服务于更多的领域,并为社会进步经济增长带来贡献。

[1]房卫东,张武雄.区块链的网络安全: 威胁与对策[J].信息安全学报,2018.

[2]祝烈煌.区块链交易数据隐私保护机制[J].大数据, 2018.

[3]王卯宁.基于Merkle哈希树结构的区块链第二原像攻击[J].信息网络安全,2018.

[4]叶聪聪.区块链的安全检测模型[J].软件学报,2018.

猜你喜欢

挖矿算力矿工
算力盗用:一种新型财产侵害*
中科曙光:联合发布全国首个“一体化算力交易调度平台”
中国电信董事长柯瑞文:算力成为数字经济的主要生产力
合力攻坚 全面治理高校“挖矿”
多措并举 全流程整治“挖矿”
算力网络场景需求及算网融合调度机制探讨
金牌挖矿工
挖矿木马的攻击手段及防御策略研究
老矿工的家国情怀
矿工老李