零点课堂 | 什么是日蚀攻击(Eclipse Attack)?

日蚀攻击是一种相对简单的基础攻击,攻击者可能会通过该攻击方式干扰网络上的节点。顾名思义,该攻击能够使对等网络中被攻击节点无法获取有效信息,从而引发网络中断或为更复杂的攻击做准备。

日蚀攻击的工作原理

比特币矿工需要专用设备生成验证新区块,但是非挖矿(或完整)节点仅需要非常小的算力即可运行。通过这种方式,任何人都可以在廉价设备上运营节点,这也有助于比特币的去中心化。软件程序维护了与对等方同步的事务处理数据库,以便与网络保持同步。

对大量节点连接的限制因素是带宽。因此,尽管有大量设备可以运行该程序,但比特币网络中设置了连接数量限制(最多只能连接125个),普通设备无法直接与其他设备进行互连。在日蚀攻击中,攻击者会确保目标的所有连接都建立在攻击者所控制的节点上。攻击者将首先从自己的IP地址向目标地址发送泛洪,受害者可能会在程序重启时连接到攻击者的IP地址。可以强制重启,或者仅等待程序自动重启。

如果发生这种情况,毫无戒心的受害者就会听从恶意节点的摆布,攻击者向它们提供了错误数据,他们无法从真实网络中获取到数据。

日蚀攻击造成的后果

如果攻击者通过消耗网络节点的资源,能够使其从网络中分离,那么他们就有动机实施此类攻击。如果节点被隔离了,攻击者就可以实施几次连续攻击。

无需确认的“双花”

如果独立节点接受了未经确认的交易,那么就会发生“双花”风险。如果发生的交易在进入区块之前(提交至区块链),可能已经进行广播了,那么发送方就可以在其他地方轻松得进行一次新的交易,花费掉与此前交易相同的金额。如果新产生的交易手续费较高,这个时候矿工们会优先处理该笔交易,并认为这笔交易是最先发生的,从而造成最先发生的交易无效。

某些商户和个人接受这些0确认交易。假设某个商人Bob,他销售高端汽车。他不知道Alice已将将他的节点进行了日蚀攻击,再看到她的豪华跑车订单后,也没有产生任何怀疑。Alice创建了交易,Bob随即将其广播到网络。在看到付款消息即将被确认后,感到非常满意,他将车钥匙交给了Alice,Alice开车加速离开。

而实际上,交易并没有被广播到网络中,Bob只是将交易传递到了Alice的恶意节点中,而Alice所控制的恶意节点也不会将交易传递到真实节点中。因此,该笔交易会被认为无效,这个时候Alice在(真实)网络上又支付了同样的金额,可以是转给她自己也可以是转给其他人。即使最后在真实网络中看到了最初和Bob之间的初始交易,但由于Alice账户中的资金已经使用掉,该笔交易也无法被验证。

需N次确认的“双花”

需N次确认的“双花”与无需确认的“双花”相类似,只是涉及更多的准备工作。许多商户都希望付款被标记为有效之前能够先等待一定数量的确认。为了解决该问题,攻击者必须使矿工和商户节点都进行日蚀攻击。如果攻击者与商户建立了订单,他们就会向(遭受日蚀攻击)的矿工广播交易。商户可以在区块链网络中看到交易被确认,但由于矿工和商户所在的网络都被隔离了,因此该区块链并不是大多数真实节点所能够见证的。

攻击者将该虚假的区块链网络信息发送给商户,商户在看到交易已经被确认后,就进行了商品的交接。而当这些遭受日蚀攻击的节点重新加入真实网络后,真实的区块链网络会认为这部分节点是无效的,从而将这部分节点进行孤立。

声明:本文由 Binance撰写,零点财经收录,观点仅代表作者本人,绝不代表零点财经赞同其观点或证实其描述。

本文由 零点财经 作者:tao 发表,其版权均为 零点财经 所有,文章内容系作者个人观点,不代表 零点财经 对观点赞同或支持。如需转载,请注明文章来源。
分享生成图片
59

发表回复

零点课堂 | 什么是日蚀攻击(Eclipse Attack)?

2021-02-22 9:44:12

日蚀攻击是一种相对简单的基础攻击,攻击者可能会通过该攻击方式干扰网络上的节点。顾名思义,该攻击能够使对等网络中被攻击节点无法获取有效信息,从而引发网络中断或为更复杂的攻击做准备。

日蚀攻击的工作原理

比特币矿工需要专用设备生成验证新区块,但是非挖矿(或完整)节点仅需要非常小的算力即可运行。通过这种方式,任何人都可以在廉价设备上运营节点,这也有助于比特币的去中心化。软件程序维护了与对等方同步的事务处理数据库,以便与网络保持同步。

对大量节点连接的限制因素是带宽。因此,尽管有大量设备可以运行该程序,但比特币网络中设置了连接数量限制(最多只能连接125个),普通设备无法直接与其他设备进行互连。在日蚀攻击中,攻击者会确保目标的所有连接都建立在攻击者所控制的节点上。攻击者将首先从自己的IP地址向目标地址发送泛洪,受害者可能会在程序重启时连接到攻击者的IP地址。可以强制重启,或者仅等待程序自动重启。

如果发生这种情况,毫无戒心的受害者就会听从恶意节点的摆布,攻击者向它们提供了错误数据,他们无法从真实网络中获取到数据。

日蚀攻击造成的后果

如果攻击者通过消耗网络节点的资源,能够使其从网络中分离,那么他们就有动机实施此类攻击。如果节点被隔离了,攻击者就可以实施几次连续攻击。

无需确认的“双花”

如果独立节点接受了未经确认的交易,那么就会发生“双花”风险。如果发生的交易在进入区块之前(提交至区块链),可能已经进行广播了,那么发送方就可以在其他地方轻松得进行一次新的交易,花费掉与此前交易相同的金额。如果新产生的交易手续费较高,这个时候矿工们会优先处理该笔交易,并认为这笔交易是最先发生的,从而造成最先发生的交易无效。

某些商户和个人接受这些0确认交易。假设某个商人Bob,他销售高端汽车。他不知道Alice已将将他的节点进行了日蚀攻击,再看到她的豪华跑车订单后,也没有产生任何怀疑。Alice创建了交易,Bob随即将其广播到网络。在看到付款消息即将被确认后,感到非常满意,他将车钥匙交给了Alice,Alice开车加速离开。

而实际上,交易并没有被广播到网络中,Bob只是将交易传递到了Alice的恶意节点中,而Alice所控制的恶意节点也不会将交易传递到真实节点中。因此,该笔交易会被认为无效,这个时候Alice在(真实)网络上又支付了同样的金额,可以是转给她自己也可以是转给其他人。即使最后在真实网络中看到了最初和Bob之间的初始交易,但由于Alice账户中的资金已经使用掉,该笔交易也无法被验证。

需N次确认的“双花”

需N次确认的“双花”与无需确认的“双花”相类似,只是涉及更多的准备工作。许多商户都希望付款被标记为有效之前能够先等待一定数量的确认。为了解决该问题,攻击者必须使矿工和商户节点都进行日蚀攻击。如果攻击者与商户建立了订单,他们就会向(遭受日蚀攻击)的矿工广播交易。商户可以在区块链网络中看到交易被确认,但由于矿工和商户所在的网络都被隔离了,因此该区块链并不是大多数真实节点所能够见证的。

攻击者将该虚假的区块链网络信息发送给商户,商户在看到交易已经被确认后,就进行了商品的交接。而当这些遭受日蚀攻击的节点重新加入真实网络后,真实的区块链网络会认为这部分节点是无效的,从而将这部分节点进行孤立。

声明:本文由 Binance撰写,零点财经收录,观点仅代表作者本人,绝不代表零点财经赞同其观点或证实其描述。