XY攻击向量——IOTA版“34攻击”

Wiston(作者为IOTA slack社区管理员)

我们知道,在区块链中,最著名的攻击向量(attack vector)是“51攻击”,自从这个理论上的攻击的假设提出后,多年来研究发现,实际上攻击只需控制34%的网络中的算力即可发动。所以一下子,公众对攻击向量的认识成了一个基本的误解(人们认为攻击需要控制大部分的网络算力,而实际上只需要34%)。不过准确的百分比仍然暗藏字面背后——让我们看看这种攻击是如何应用于IOTA上的。

当你继续读这篇文章时,你会发现“34攻击”并不是真的“IOTA的34攻击”(让我们将IOTA中的此类攻击称作XY攻击,以强调双变量的要求)。

理解这部分的最关键的第一步是,IOTA是网状网络拓扑结构,这与其他所有区块链大不一样。互连互通和物联网的未来联结是IOTA采用网状网的因素,这种网状网对网络的安全性有一些特别的暗示,最重要的一个是,这种拓扑加强了网络弹性以抵抗XY攻击。

IOTA网状网:每个全节点仅能通过紧连的邻节点窥视整个缠结网络的一小部分。没人有所有节点的所有IP清单。

现在,我们来研究一下IOTA的XY攻击。因为区块链不在一个网状网中,对区块链的34攻击仅仅意味着如果你取得了足够的算力,你可以成功进行攻击。网络算力百分比是区块链的34攻击中的唯一变量,然而对IOTA来说,攻击要求有三个变量(其中一个已经确定)。

1、百分之X的网络算力

充足比例的网络算力(“X%”[任意数字]。我们稍后将在此攻略中建立一个多元“梯度”概念):像对比特币,攻击者会需要攫取非常大的网络算力以占领网络,然而在IOTA中,如你所见,这并不是唯一变量。同样地,也并没有一个“全有或全无”的网络接管。这个概念本身可能需要一整篇文章来解释,但我只想说,XY攻击仅能拿下缠结的几层,需要指数级增强的3个变量才能使攻击传播深入至缠结内部。

2、遍在性

立刻观察整个网络的拓扑。“对网络进行整体观察。”
为了合理有效地配置攻击资源,一次攻击需要有一个对缠结所有全节点连接的广泛的全局观察,这明显做不到,因为每个连接都保持私密,没有个体能够映射整个网络。

3、百分之Y的全知全能

以某一百分比的网络全节点进行配对。

使得网络中绝大部分的全节点相邻(Y%的全知全能):攻击者必须能够将其巨大的算力(X%的网络算力)通过缠结“突然”(不突然,不成攻击,所以突然性是第三个攻击变量要求的附属要求)。

举个例子:一名攻击者需要X%的网络算力并且与缠结中所有邻节点的Y%匹配,这样会极大地帮助其对网络中每个连接进行全面观察,以优化攻击者的攻击传播,但这是做不到的,所以今后,这种XY攻击就可以忽略了。

设X=25(译注:原文为25%,此处更正为25,下同),Y=15:攻击者将消灭少量的“边缘节点”(攻击者联结的节点),现在“梯度”概念粉墨登场,X与Y的组合将决定攻击中边缘节点被摧毁的百分比,以及攻击的效率。X可以是99,但是如果Y不足,攻击也仅能打倒极小比例的边缘节点(Y左右!)。边缘节点及部分边缘节点附近的节点将会卷土重来并反制攻击,重启或者将攻击者拉黑,以便恢复功能。网状网的低延时特性意为攻击有一个依赖于X和Y向量的梯度。

现在,假设攻击者想将攻击传导至缠结深处。令X=40,Y=20:攻击者将消灭比第一个例子中所述多得多的边缘节点,并可将攻击进一步传播。X和Y值组合越大/越优,缠结中的攻击传播越深——理论上需要算力和邻节点找寻并保持的能力这两者均指数级增长,以使缠结攻击的深度有一个边际增长,(此需求)使得一定数量级的缠结面对此类攻击时相比非网状网拓扑的区块链更具韧性。

Originally posted on IOTA slack as a wrap up to a #tanglemath conversation.
***This is not official***
Later posted on TangleBlog. ctrl+f "attack vector"

Is a doublespending attack possible with IOTA?

Edited Yesterday @ 9:58 by Winston

译文首次编辑来自:https://iotatangle.slack.com/archives/C1TH3NXJP/p1508725836000022

鸣谢群友@大猫提供线索!

专栏作者:小椽子

个人简介:我共发表了 11 篇文章,总计被阅读了55,931 次,共获得了 184 个赞。

作者邮箱 作者主页 Ta的文章

发表评论

邮箱地址不会被公开。 必填项已用*标注