http://www.7klian.com

什么是区块链中的日蚀进攻?

本文来自Wisdom Chain公链社区投稿

日蚀攻击(Eclipse Attack)是比特币中的一种攻击手段,最早在2015年于《Eclipse Attacks on Bitcoin's Peer-to-Peer Network》(比特币的点对点网络中的日蚀攻击)一文中被提出。日蚀攻击的手段不同于我们常见的51%攻击,其表现为对特定节点或节点集群进行网络攻击,让网络出现“分区”以此达到双花等目的。想要理解日蚀攻击并不难,只要对区块链挖矿、交易和网络结构有所理解即可。

区块链中的恶意攻击

对于区块链的恶意攻击,相信最为人熟知的便是51%攻击——在工作量证明中,攻击者拥有全网50%以上的算力便可通过双重花费行为进行欺诈,实现对交易数据的“篡改”。

ETC的51攻击

这一点最早在比特币的白皮书中便有所提及,一般人们也会认为比特币系统(乃至于大多数工作量证明区块链)的安全算力阈值为51%,也让矿工和用户有意识的确保某一个体或集体不能控制比特币50%以上的算力。

ETC遭遇51%攻击曲线

但实际上,比特币的安全算力阈值并非50%而是33%,原因在于通过“自私挖矿”,矿工通过有意识地隐藏发掘出的区块,可以将对网络发起攻击的门槛由50%降低到33%。

在自私挖矿中,只要恶意者的算力超过了全网的1/3(33%),那么其连续挖掘到两个区块的概率与其他人连续挖掘到两个区块的概率比值接近1/4。只要能尝试在挖掘到第一个区块时隐藏不广播,当你的算力超过了全网1/3时,作恶就存在收益。自私挖矿不仅削弱了比特币(也是工作量证明)的安全界限,由于该算力投入到了“私有链”的挖掘中,也削弱了整个网络的算力上限。

降低区块链网络安全界限的方式除了自私挖矿外,另一种方案便是本文所提到的日蚀攻击了。

日蚀攻击概述

我们仍以比特币作为例子。比特币作为一个采用点对点网络的区块链应用,网络中的所有节点相互是平等的,相互之间也能无障碍地进行沟通链接,当然这只是理论情况。

示意图

实际上,由于网络带宽限制和算力分布限制,比特币限制了单个节点可接收信息和主动链接其他节点的上限。对于接受信息,单个节点最多只能接收117个节点的信息;对于主动链接其他节点,单个节点只能主动联系其他8个节点。而日蚀攻击的重点便是对单个节点所链接的和所接收的节点信息。

如果一个节点所接收信息的117个节点和对外链接的8个节点全部都是由恶意节点操控的话,相当于该节点被恶意者所孤立,其所有接受的信息都受到攻击者控制,这种情况我们便称该节点遭受了“日蚀攻击”,看起来和传统安全领域的中间人攻击类似。

如果恶意者可以控制更多的节点,对更多的正常节点发起日蚀攻击,那么恶意者将可以把比特币网络拆分为两个不同的分区,就像分叉一样。

日蚀攻击示意图

来源:Binance Academy

假如恶意者掌握了足够的带宽资源,且自身拥有全网40%的算力,它可以将比特币网络拆分为两个分区,,假设两个分区各占有全网30%的算力,恶意者不仅可以通过隔离两个分区之间的信息沟通,并且还能依靠这40%的算力在两个分区中都发起51%攻击(恶意者在每个分区的算力占比都是4/7)。

如果恶意者只有网络带宽资源而没有算力,依然可以实现双花攻击。假设恶意者通过日蚀攻击将网络拆分为两个分区,一个分区占有20%算力而另一个占有80%算力,此时恶意者在先在20%算力分区发起一次交易,同时也在80%分区发起一次转账给自己的交易。

在日蚀攻击的影响下,两个分区无法沟通,故只能依据自身所在分区的算力进行挖矿,由于80%算力分区占有绝对算力优势,其区块高度早晚会超过20%算力分区,当恶意者解除日蚀攻击后,首先发送在20%分区上的交易将会因为最长链原则被废弃,而80%分区上的双花交易则会被接受。恶意者通过日蚀攻击完成了无需算力占比的双花攻击。

日蚀攻击并非理论上存在,在现实中也有过试验《Eclipse Attacks on Bitcoin's Peer-to-Peer Network》论文中便通过生成僵尸网络,利用IP地址对比特币部分节点成功发起了近1小时的日蚀攻击。

尽管目前比特币已经根据论文团队意见对日蚀攻击进行了防护,日蚀攻击的风险仍然值得所有工作量证明区块链考虑。

对日蚀攻击的一些思考

日蚀攻击是对所有工作量证明区块链的一项考验,不仅仅是比特币,以太坊也面临日蚀攻击的风险。Wisdom Chain作为采用工作量证明的区块链也不例外,但通过一些有效机制,Wisdom Chain可以轻松应对日蚀攻击。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读