| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 华纳云:区块链中的日蚀攻击是什么? -> 正文阅读 |
|
[区块链]华纳云:区块链中的日蚀攻击是什么? |
区块链中的日蚀攻击是什么?作为简单的基础攻击,干扰被攻击者网络上的节点。日蚀攻击(Eclipse Attack)是比特币中的一种攻击手段,最早在2015年于《Eclipse Attacks on Bitcoin’s Peer-to-Peer Network》(比特币的点对点网络中的日蚀攻击)一文中被提出。日蚀攻击的手段不同于我们常见的51%攻击,其表现为对特定节点或节点集群进行网络攻击,让网络出现“分区”以此达到双花等目的。想要理解日蚀攻击并不难,只要对区块链挖矿、交易和网络结构有所理解即可。 从表面上看,日蚀攻击(Eclipse Attack)与女巫攻击(Sybil Attack)相似。尽管它们具有某些相似之处(攻击者通过攻击节点扰乱网络),但它们最终的攻击目标是不同的。日蚀攻击的目标是单个节点(原因将在下文中说明),而女巫攻击的目标是整个网络范围,旨在篡改网络协议的信誉体系。 什么是比特币中的日蚀攻击 一、针对区块链的日蚀攻击在哪个阶段? 我们以比特币作为例子: 比特币作为一个采用点对点网络的区块链应用,矿工需要专用设备生成验证新区块,但是非挖矿(或完整)节点仅需要非常小的算力即可运行。通过这种方式,任何人都可以在廉价设备上运营节点,这也有助于比特币的去中心化。软件程序维护了与对等方同步的事务处理数据库,以便与网络保持同步。网络中的所有节点相互是平等的,相互之间也能无障碍地进行沟通链接,当然这只是理论情况。 实际上,由于网络带宽限制和算力分布限制,比特币限制了单个节点可接收信息和主动链接其他节点的上限。对于接受信息,单个节点最多只能接收117个节点的信息;对于主动链接其他节点,单个节点只能主动联系其他8个节点。而日蚀攻击的重点便是对单个节点所链接的和所接收的节点信息。 1、如果一个节点所接收信息的117个节点和对外链接的8个节点全部都是由恶意节点操控的话,相当于该节点被恶意者所孤立,其所有接受的信息都受到攻击者控制,这种情况我们便称该节点遭受了“日蚀攻击”,看起来和传统安全领域的中间人攻击类似。 2、如果恶意者可以控制更多的节点,对更多的正常节点发起日蚀攻击,那么恶意者将可以把比特币网络拆分为两个不同的分区,就像分叉一样。 3、如果恶意者掌握了足够的带宽资源,且自身拥有全网40%的算力,它可以将比特币网络拆分为两个分区,假设两个分区各占有全网30%的算力,恶意者不仅可以通过隔离两个分区之间的信息沟通,并且还能依靠这40%的算力在两个分区中都发起51%攻击(恶意者在每个分区的算力占比都是4/7)。 4、如果恶意者只有网络带宽资源而没有算力,依然可以实现双花攻击。假设恶意者通过日蚀攻击将网络拆分为两个分区,一个分区占有20%算力而另一个占有80%算力,此时恶意者在先在20%算力分区发起一次交易,同时也在80%分区发起一次转账给自己的交易。 在日蚀攻击的影响下,两个分区无法沟通,故只能依据自身所在分区的算力进行挖矿,由于80%算力分区占有绝对算力优势,其区块高度早晚会超过20%算力分区,当恶意者解除日蚀攻击后,首先发送在20%分区上的交易将会因为最长链原则被废弃,而80%分区上的双花交易则会被接受。恶意者通过日蚀攻击完成了无需算力占比的双花攻击。 蚀攻击并非理论上存在,在现实中也有过试验《Eclipse Attacks on Bitcoin’s Peer-to-Peer Network》论文中便通过生成僵尸网络,利用IP地址对比特币部分节点成功发起了近1小时的日蚀攻击。尽管目前比特币已经根据论文团队意见对日蚀攻击进行了防护,日蚀攻击的风险仍然值得所有工作量证明区块链考虑。 在日蚀攻击中,攻击者会确保目标的所有连接都建立在攻击者所控制的节点上。攻击者将首先从自己的IP地址向目标地址发送泛洪,受害者可能会在程序重启时连接到攻击者的IP地址。可以强制重启(即对目标进行DDoS攻击),或者仅等待程序自动重启。 如果攻击者通过消耗网络节点的资源,能够使其从网络中分离,那么他们就有动机实施此类攻击。如果节点被隔离了,攻击者就可以实施几次连续攻击。 日蚀攻击的核心元素 二、日蚀攻击的核心元素: 对于区块链的恶意攻击,相信最为人熟知的便是51%攻击——在工作量证明中,攻击者拥有全网50%以上的算力便可通过双重花费行为进行欺诈,实现对交易数据的“篡改”。这一点最早在比特币的白皮书中便有所提及,一般人们也会认为比特币系统(乃至于大多数工作量证明区块链)的安全算力阈值为51%,也让矿工和用户有意识的确保某一个体或集体不能控制比特币50%以上的算力。 但实际上,比特币的安全算力阈值并非50%而是33%,原因在于通过“自私挖矿”,矿工通过有意识地隐藏发掘出的区块,可以将对网络发起攻击的门槛由50%降低到33%。 在自私挖矿中,只要恶意者的算力超过了全网的1/3(33%),那么其连续挖掘到两个区块的概率与其他人连续挖掘到两个区块的概率比值接近1/4。只要能尝试在挖掘到第一个区块时隐藏不广播,当你的算力超过了全网1/3时,作恶就存在收益。自私挖矿不仅削弱了比特币(也是工作量证明)的安全界限,由于该算力投入到了“私有链”的挖掘中,也削弱了整个网络的算力上限。 降低区块链网络安全界限的方式除了自私挖矿外,另一种方案便是本文所提到的日蚀攻击了。 三、防御日蚀攻击的一些例子: 日蚀攻击的例子有很多,日蚀攻击对所有工作量证明区块链都有影响,不仅仅是比特币,以太坊也面临日蚀攻击的风险。 1、Wisdom Chain,作为采用工作量证明的区块链也不例外,但通过一些有效机制,Wisdom Chain可以轻松应对日蚀攻击。 首先,Wisdom Chain采用了PoW+DPoS的混合共识结构,权益证明类共识算法对于日蚀攻击有良好效果,出块节点需要质押代币,而出块节点之间进行着相互沟通,这令攻击者想要发起攻击必须要质押超额代币,提高了作恶成本。其次,共识机制中的黑名单列表确保了只要发现意图发起日蚀攻击的节点,通过黑名单机制可以预防其成为出块节点威胁网络安全程度。 当然,日蚀攻击的出现原因在于点对点网络和工作量证明机制,想要从根源上断绝日蚀攻击的风险就必须得从网络结构上下手,这难免会令区块链丧失去中心化等特点。不过,只要通过有效手段提高攻击门槛,并以合理的经济机制激励节点,日蚀攻击对于大多数区块链而言是可以预防的。 2、日蚀攻击本身成本高昂: 首先,遭受日蚀攻击的节点会继续运行,不会受到被网络隔离的影响。矿工将继续在协议规定的规则范围内对区块进行验证,但是添加的区块将会在和真实网络节点进行通过的过程中进行丢弃。 从理论上讲,对大部分矿工的大规模日蚀攻击可用于促进51%攻击。就目前的情况而言,即使是最有资源的攻击者,接管大多数比特币算力(约80TH/s)的成本也过于高昂,攻击者至少需要以超过40TH/s的算力进行尝试。 我们假设将这种算力分布在10个参与者中(每个参与者大约拥有8TH/s),攻击者可以通过将这些参与者从网络隔离,大大降低51%攻击的要求。如果其中的5个节点遭受日蚀攻击,攻击者就可以减少40TH/s的算力,用于来寻找下一个区块,并且攻击者现在只需要提高20TH/s的算力即可实现对节点的控制。 通过对目标实施日蚀攻击,可以实现的其他破坏性活动,包括操纵节点进行非法挖矿活动,或利用矿工之间的算力竞争来获取下一个区块。 3、需要有海量IP才能造成影响: 如果拥有足够多的IP地址,攻击者就可以对任何节点实施日蚀攻击。而防止这种情况发生的最直接方法是让阻止节点的非法接入,并仅建立到特定节点(例如已被对等网络中的其他节点列入白名单的IP)的出站连接。但是,正如研究论文所指出的那样,这并不是一种可以大规模实施的方案,如果所有参与者都采取这些措施,则新节点将无法加入到网络。 日蚀攻击是在对等网络上进行的。作为一种可独立攻击部署的方式,它们会让人感到厌烦。进行日蚀攻击的真正目的,其实是为了实施其他能够造成更大影响的攻击,或者为攻击者提供了在挖矿方面的优势。 普遍来说,日蚀攻击尚未造成严重影响,尽管区块链网络中已部署了防范措施,但威胁仍然存在。日蚀攻击与比特币和其他大部分加密货币所面临的大多数攻击一样,最好的防御措施是让恶意攻击者无利可图。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:20:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |