Optimistic Rollups侧链攻击

作者:扎克-赫斯, Zack Hess https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/optimistic_rollups_sidechain_attack.md

Optimistic Rollups侧链攻击 #

这是试图表明,如果乐观的卷积的规模比线性的差。如果你增加tx生产的速度,每tx的费用必然增加。

一个成功的扩展方案是,随着TXS总数的增加,TXS费用会减少。

Optimistic rollups有分片 #

如果我们增加我们可以存储在共识空间中的可用数据量,但仍然试图只维护一个单一的每个人的余额的默克尔树,我们会遇到缩放限制。就是不可能把元素插入到一个单一的默克尔树中,并重新计算默克尔的根,超过一定的速度。这种计算有一些方面是不能并行化的。因此,无论我们在网络上增加多少台计算机,我们在任何单一的默克尔树上更新账户余额的速度仍然会有一个上限。

因此,为了克服这个限制,我们需要维护多个账户余额的数据库,称为分片。我们需要一些较慢的机制来将价值从一个分片中转移到另一个分片中。

optimistic rollups需要领导 #

让我们假设有一个以上的人有权限发布侧链区块。如果是这样的话,那么他们中的任何一个人都有可能进行3级悲痛攻击。

一个侧链区块需要容纳许多TXS,但攻击者可以建立一个只包含1个TXS的矛盾侧链区块,他可以让他的小矛盾区块插入到大区块前面。

因此,攻击者的成本是在可用的共识状态中发布一个tx的成本。而攻击造成的破坏与平均侧链区块的大小成正比,我们从欺诈证明分析中知道,这至少是O(sqrt(sqrt(可用共识空间中的txs总数)))。由于破坏大于攻击的成本,这将是一个3级攻击。因此,这意味着有一个侧链,超过一个人有权限发布区块是不安全的。

因此,这意味着在任何时候,都需要有一个人,或一些人拥有制作侧链区块的独家许可。他们是该侧链的领导。

永久性领导不起作用 #

如果任何一个侧链的领导权是永久性的,那么该侧链将容易受到软分叉的贿赂攻击。 proof_of_stake.md

只要领导层定期更换,而你又无法预测谁是下一任领导,而且一下子贿赂所有分片的验证者是不可行的,那么贿赂就是无效的。因为你不知道你需要将谁锁定在一个合同中,以获得你开始执行攻击所需的保证。

如果领导层只是很少被调换,那么对单轮领导层执行这种攻击仍然是有利可图的。所以我们需要的是,轮换领导的成本不会太高。

你可以根据他们换出的时间长短,以及分片中的价值多少来赚取一些利润。而成本则是基于如果他们进行这种攻击,有多少股权可能会受到惩罚。

每条侧链的领导 #

如果我们希望攻击的利润是恒定的,那么一个分片中的硬币~每个分片中的股权

通过分析欺诈攻击,我们知道分片的数量是sqrt(tx生产率),所以每个分片中的硬币部分一定是sqrt(tx生产率)。

假设每个领导的股权保持不变。

每个分片的领导~平方(Tx生产率)

领导层轮换的成本 #

交换领导权的成本与领导者各自同步另一条侧链的成本相同。

旋转的成本=O((#领导)*(同步一个侧链的成本))

同步一个侧链的成本至少是O(该侧链的大小)。通过分析欺诈证明,我们知道这个规模至少是O(sqrt(tx产生率))。

通过分析欺诈证明,我们知道侧链的数量至少是O(sqrt(tx产生的速率))。

= O((#分片)*(每个分片的#领导)*(侧链的大小))

= O(sqrt(tx生产率)*(sqrt(tx生产率))*(sqrt(tx生产率)))

旋转成本=O((Tx生产率)^(3/2))

因此,这意味着每个侧链的每个tx费用需要随着整个Optimistic Rollups网络中tx生产率的增加而增加。如果Optimistic Rollups网络变得4倍大,所有分片中的最低tx费用将变得至少2倍大。