区块链被看作是未来的“价值传输”互联网,作为构造信任的机器,具有彻底改变人类社会价值传导方式的意义。
虽然区块链是基于严禁的加密技术,且具分布式特性以及外在的弱中心化系统,但区块链并非无懈可击。所谓道高一尺魔高一丈,由于技术手段、安全防护、漏洞修复仍不够完善,现阶段的区块链应用正面临着不少外部攻击。
今天我们来了解一下,威胁区块链安全运行的两大攻击方式:女巫攻击与DAO攻击。
女巫攻击:成本巨大的算力攻击
“女巫攻击”这个名字源于一部名为《女巫》(Sybil)的电影,改编自1973年美国作家弗洛拉·施莱伯(Flora Schreiberie)的同名小说。主人公是一个名叫Sybil Dorsett的女人,她被诊断为分离性身份认同障碍,兼具16种分裂人格。
《Sybil》电影海报
作为分裂人格的引申,在一个P2P网络,即对等网络中,节点通常具有多个身份标识。
这是由于不同的用户可以随时加入、退出节点,为了维持网络稳定性,网络会将同一份数据备份到多个分布式节点上,这也就是我们说的数据冗余机制。而女巫攻击的最终目标,就是攻击数据冗余机制。
比特币网络的账本确认,主要是通过矿工提供的算力来维护的,但我们无法保证网络矿工都是诚实的。假设某一个矿工出于某种目的需要改变网络规则和结果,比如出块速度,那他就可以投入巨量算力或者买通其他矿工来达到作恶的目的。
1、投入巨量算力
主要就是购买矿机硬件,自己生产算力,不过这样做的成本是巨大的。如果想控制比特币网络,按照目前的币价,估计至少需要30亿~40亿美元。这种攻击整个网络记账权的方式也叫51%算力攻击。
2、联合足够多的矿工修改结果
如果联合的矿工足够多,就能只针对自己想要打包的交易进行打包而忽略其他交易。冗余度低的网络,只要几名大矿工串通一气,就可以用大于或接近51%的算力(出块权)去摧毁网络,在关键时刻不打包、不记账。
一旦这些恶意节点掌握了自由记账的权利,女巫攻击就成功了,整个网络将变得不可信,失去了区块链的价值。
虽然女巫攻击的原理很简单,但是我们却无法完全杜绝这种现象。一旦记账权被少数人垄断,他们可能随时背叛,从诚实节点变成发动女巫攻击者。
3、针对比特币网络的女巫攻击,成本非常高
从比特币诞生的2009年开始,中本聪已经对女巫攻击有所防范,在最初设计比特币时,成本问题就被考虑在内。
上面说了,作恶者要控制比特币网络的共识机制,要付出至少30亿美金的硬件(算力)成本。除此之外,为了说服其他矿工进行女巫攻击,还要额外付出比正常挖矿高得多的成本。这里,最基本的经济规律杜绝了希望通过女巫攻击来拖垮比特币网络的现象,因为女巫攻击太不划算了,成功概率也非常小。
4、新区块链更易遭受女巫攻击
虽然比特币基本不用担心女巫攻击,但新出现的区块链网络可能就没那么幸运了。
由于网络算力不足、节点不足,对其进行女巫攻击的成功概率就会大很多。因为女巫攻击而夭折的项目也有不少。
DAO攻击:差点毁了以太坊的漏洞攻击
2015年,The DAO以太坊合约智能合约正式问世,并在2016年5月27日完成了当时全世界最大规模的众筹,一共筹集了1.5亿美元。但在6月17日,一群黑客攻击了The DAO网络,并一举盗取了约364万ETH。
这次攻击对以太坊原链造成了巨大伤害,其破坏力几乎摧毁了整个以太坊网络,盗币当天,以太坊价格暴跌50%。万般无奈之下,为了挽救The DAO投资者的损失,以太坊团队在7月20日进行了硬分叉,被废弃的原链就是现在的以太经典(ETC)。
这次攻击事件,就是区块链领域中著名的DAO攻击。
1、利用致命漏洞的攻击方式
DAO攻击利用的是The DAO合约中的一个致命漏洞。
攻击者创建了一个合约去调用The DAO的splitDAO,并利用漏洞让The DAO智能合约调用攻击者新建合约中的“()”函数,在函数中再去递归调用splitDAO。如此反复操作,要么gas被耗尽,要么达到stacklimit内存堆栈上限,或递归次数上限的时候才会停止。在这之前,可以不停转出账户余额,并且不会减少自己的余额。
如今,这个漏洞已被以太坊修补,相信未来不会再出现这种递归调用的Bug了。
2、DAO攻击所暴露出的区块链缺陷
The DAO智能合约的愿景是通过分布式、弱中心化达到社区的自我运转,但如果没有足够的安全保障做前提,再丰满的理想也会灰飞烟灭。
从这次DAO攻击中可以看出,这种区块链设计存在如下问题:
(1)当出现重大灾难时,去中心化的体系在反应上会处于两难境地。比如:解决方案提交晚了就会遭到舆论的抱怨。
(2)攻击者很难被追查到,更难被追究责任。一来没有专门的法律约束,二来其使用的攻击方法并没有被系统禁止。
(3)由于软件是开源的,在一个弱中心化的社区中,软件出了问题几乎无法追责。
(4)矿工作为区块链生态的重要一环,非常容易产生中心化聚集,如何给予合理奖励的同时限制其影响力?
如何防范这些攻击
对于女巫攻击的防范,就是记账权(出块权)的博弈,最终参与的人数越多就越不容易合谋,网络也就越安全。对于DAO攻击的防范,则只能靠社区维护团队的自觉意识,时刻关注网络状况并及时修复bug,维护好矿工与网络的关系。
及时对网络进行升级是防范攻击的重要手段,但这又引发一个问题——当网络想要升级时,原本有利的竞争关系,会转变为对系统改进的阻力。
这些防范手段犹如一把双刃剑,如何平衡和设计利益,不仅是如何确保在弱中心化系统中,价值信息得到100%保护的基础,更是未来区块链网络共识机制需要不断探索的问题。
领取专属 10元无门槛券
私享最新 技术干货