日食攻击是经过其余节点实施的网络层面攻击,这种攻击目的是阻止最新的区块信息进入到被攻击的节点,从而隔离节点。
web
其攻击手段为:囤积和霸占受害者的点对点链接时隙(slot,相似时间间隔的意思),将该节点保留在一个隔离的网络中,达到隔离节点的目的。算法
目前的比特币网络和以太坊网络已经被证明均受日食攻击影响。
安全
攻击者能够控制足够数量的 IP 地址来垄断全部受害节点之间的有效链接。而后攻击者能够征用受害者的挖掘能力,并用它来攻击区块链的一致性算法或用于 “重复支付和私自挖矿”。
服务器
攻击者能够垄断受害节点全部的输入和输出链接,从而将受害节点与网络中其余正常节点隔离开来。 而后攻击者日食攻击能够诱骗受害者查看不正确的以太网交易细节,诱骗卖家在交易其实尚未完成的状况下将物品交给给攻击者。
网络
日食攻击还能够攻击以太坊合约,方法就是让受害节点没法看清楚区块链信息,从而延迟节点看清楚智能合约的内部计算可能用到的各个参数,致使不正确的智能合约输出,于是攻击者能够大捞一笔。
在论文中,研究者仅用2台主机就成功的发起了日食攻击,且每台主机只有一个IP地址。这说明以太坊更容易被日食攻击影响。
eclipse
更具体点说,以太坊网络中的节点经过加密 ECDSA 公钥来标识,值得注意的是,Geth v1.8 以前的以太坊版本容许从具备相同单个 IP 地址的同一台机器运行无限数量的以太坊节点,每一个节点都具备不一样的 ECDSA 公钥。因为生成新的 ECDSA 公钥很简单,只须要运行 ECDSA 密钥生成算法,就能够在几秒钟内轻松建立数千个以太坊节点ID,而不会耗费大量计算资源。所以,咱们的攻击者生成一组以太坊节点ID,而后使用协调策略从两台主机(每台主机)仅使用一个IP地址即可以发起 eclipse 攻击。更糟糕的是,以太坊节点以偏见的方式与对等节点创建链接(即,一些节点 ID 比其余节点更容易成为对等节点),这很容易被攻击者预测到。 所以,咱们的攻击者仔细选择他的节点 ID,以便受害者更可能链接到攻击者节点 ID,而不是合法的 ID。svg
日食攻击为网络层面的攻击,对比特币网络上的节点实施日食攻击须要成千上万个恶意节点才能搞垮一个受害者的节点。但在以太坊上,攻击者经过创建一个僵尸网络(买点云服务器就能够作到),就能够发起攻击,极端状况下,攻击者甚至只须要两个恶意的以太坊节点就能隔离和影响另外一个节点,因此说成本不算很高。
区块链
撰写该漏洞论文的研究团队表示,他们并非冷不防的忽然发布研究结果,他们与以太坊基金会合做,已经悄悄给这些问题打上了补丁,修复后的版本为 Geth 1.8.0。加密
但研究人员同时表示,这些对策没法彻底防止日食攻击,而只是将实施这种攻击所需的恶意节点数量从两个增长到了几千个。xml
注意日常电脑使用,避免被恶意控制,等待官方及时更新最新客户端,以避免旧客户端有漏洞而被黑客们利用。
原文可参阅尤瓦尔•马库斯(Yuval Marcus)等研究人员共同撰写的
《针对以太坊的点对点网络发动的低资源日食攻击》