攻击分析 简单的寄生虫链

攻击分析 简单的寄生虫链

注意:这个博文需要读者对Tangle有基本的了解。尤其是我们非常依赖这些概念,比如在Tangle中随机行走,累计权重(以及它如何影响随机行走),a参数和一个寄生虫链攻击。我们建议首先读IOTA白皮书(尤其是第四章),点击这里。这里也建议读Alon Gal 的博客推文关于a参数。

问题:双花

IOTA,不像第一代分布式账本,不基于区块链,而是一个有向无环图(DAG)。 这个革新的结构有大的优势。最突出的是它有好的扩展性和没有挖矿费用。然而,用一个新的方法去管理账本如何去解决基本的安全问题。在这篇博文中,我们部分回答了这个问题,通过提供简单关于寄生虫链(PC)攻击,在Tangle白皮书中提到过(4.1章)。IOTA基金会对这个主题研究比较活跃。

寄生虫链是尝试在Tangle中实现双花,基于以下的想法:

攻击者秘密地构建一个sub-Tangle,公众看大不到它。我们可以称这个sub-Tangle为“寄生虫链”,或者PC。在有些时候,他/她会在主Tangle(MT)中进行转账,从商人那买一些商品。攻击者已经在PC上构建了一个冲突的转账(把钱转向攻击者的一个账户,而不是商人的账户)——因此,他们创建一个双花转账。

因为冲突的转账在PC中被隐藏,在一段时间后,商人接受了MT上的付款。攻击者希望使这个转账“失效”通过把PC向公众广播。

PC被用来利用tip选择算法,让大部分的新来的转账去证明PC上双花的转账。如果成功,这个行动将会有效地改变过去和使“好”转账失效。这里有必要指出,一个成功的攻击不仅从商人那盗取货物,而去造成了额外的破坏—所有转入商人账户的“清白”的转账都失效了。

为什么这个问题是困难的?

一个普通的PC分析是很复杂的,因为PCs有不同的形状和大小。攻击者可以自由选择PC的转账数量和决定攻击者要去证明哪些转账。哪个转账的位置是相对最佳的?它应该是一个链条还是更加有效的结构?上面所有这些都是重要的和有挑战性的问题,因为它们有一个很大的自由度。记住这个声明,在这篇博文中,我们不会进行整体分析,而是专注于一些PC的特例。我们展示了一些叫做简单寄生虫链(SPC)的数据,尽管它是简单的,SPC也很有趣和在一些方面有惊奇的特性。我们决定去分析这些特别的链因为在某种程度上它是十分常见的。

让我们定义SPC:

一个简单的寄生虫链是一系列的转账,这些转账都被直接证明:

  • SPC之前的转账
  • 一个特定的MT转账,我们称作r

有一个SPC的转账与一个特定的MT转账冲突。有一个重要的事情,在MT双花转账前把r给替换掉。否则,PC转账将会全部失效。我们在图1中解释SPC

攻击分析 简单的寄生虫链

图1

如何估计攻击何时成功

我们想专注于如下的数值:任意随机行走到达SPC中最后一个转账的概率。如果这个发生在大部分新到的转账,这就意味着攻击有可能成功。,当出现冲突时,网络中诚实的用户将更偏向于PC而不是MT。

我们估算这个概率使用过的方法之一是进行一次模拟,在模拟中我们进行一次很大数量的随机行走然后计算有多少到达SPC。之前我们展示了结果,我们想强调这个数量并不等同于攻击成功的概率。一个攻击为了成功,大部分新到的转账必须去证明SPC,因此让新到的转账从属于sub-Tangle。如果一个随机行走到达SPC的可能性是10%,攻击成功的概率将会很小,对Tangle产生的危害仅仅是10%的附着到SPC的转账将会被孤立(这并不意味着这些转账丢失,而是这些转账会被重新附着)。当分析的概率接近或者超过50%的时候,这个攻击是很有威胁性的。

结果

我们现在展示一个模拟攻击的模拟数据,攻击者有很大的哈希算力。我们观察任意转账到达SPC的概率是参数a的函数。

攻击分析 简单的寄生虫链

图2

图中的数据揭示了一个本地概率的最大值。这里有一点让人惊讶,因为当a增加时,它使得新到的转账更多地附着到MT。因为这个我们曾经期待单调递减的概率。然而,这个图片表明这仅仅是故事的一部分。

这个概率分布告诉我们,这里有至少两个对抗性的“力量”。为了探讨它们,让我们定义两种情况,两种情况必须满足行走到PC:

  • 行走必须通过r
  • 行走必须从r跳到PC

毫无疑问这是正确的,当a增长时情况b)的可能性下降,然而情况a)的可能性随着a变大。

这是由于PC中转账的累计权重“吸引”着随机行走到PC。这个吸引力随着a而提高。在SPC攻击时,PC被附着到一个单独的转账r上,我们有如下情景:一方面,行走想要停留在有一个额外累积权重的区域(如图3灰色部分),但是另一方面它漂流到Tangle的末尾。因此r在灰色区域的末尾,然后穿过这个区域。

攻击分析 简单的寄生虫链

图3

让我们回到前面,审查事件b)的概率。我们使用解析计算估算这个值。图4展示了这个使用一些示例参数进行解析计算的图表。

攻击分析 简单的寄生虫链

图4

图4的本质是使安全等级可视化了(随机行走到PC的概率),它是一个a的函数。这里再次指出,这个不是攻击成功的概率,仅仅是事件b)发生的概率。

无论如何,这是一个重要的安全性指标。我们也能倒置这个方程。这个倒置的方程给出一个a,这需要保证安全等级高于给出的p等级。图5展示了一个在特定规模的MT和SPC中a结果值的热点图,安全等级被设置为p=0.1。

攻击分析 简单的寄生虫链

图5

总结

在这篇推文中,我们测试了简单的寄生虫链攻击和一些有趣的特性。值得注意的,我们看到了对这类攻击有一个“理想的” a,它十分有效而且有非平凡的结果。然而SPC并不是最有效的双花攻击方式,它是有基准线的。我们能使用它为a定义一个最低安全界限,为了与未来更复杂的攻击做比较。在未来,我们会发表一些关于Tangle安全的报告,提供更多的模拟数据,分享源公式和讨论我们的方法论。

 

专栏作者:Jodel

个人简介:我共发表了 6 篇文章,总计被阅读了14,259 次,共获得了 86 个赞。

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

发表评论

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