分析 | Arbitrum 如何植根于以太坊的安全性中?其如何防御审查攻击?

现在我们将一些合理的数字插入上述等式中,以获得一个大概的最佳挑战期限。

假设一个区块时间内的连续审查成功率高达 99.99%,即 A = -ln(0.99) = 0.01。

进一步假设每天提款为总值的 1%,并且每个区块的提款百分比约为 W=0.000002,基于出块时间为 15 秒的前提。

将这些代入公式中,我们得到的最佳挑战期限为 C = 62146 区块,即 10.79 天。这与 Arbitrum 团队最终选择的 7 天挑战期限非常接近。

如何防御审查攻击

在这一部分,我们讨论了 Arbitrum 如何防御四种主要的审查攻击:分叉攻击 (forking attacks)、回避攻击 (shunning attacks)、干扰攻击 (jamming attacks) 和快速攻击 (speed demon attacks)。

分叉攻击 (forking attacks):矿工合谋 (或受贿) 丢弃包含正常挑战的区块,以便接受不包含挑战的替代链。

首先,由于挑战者的存在,一旦发生分叉攻击,难免会被某个挑战者发现。而当大家发现区块链中的挖矿算力垄断者 (这是分叉攻击的先决条件) 为了盈利而肆无忌惮地违反规则时,区块链本身就被摧毁了。此时,Arbitrum 是否采用挑战期设计模型还存在争议。

回避攻击 (shunning attacks): 矿工们合谋 (或受贿) 忽略掉他们生产出的区块中的普通挑战。

我们假设垄断者控制了 90% 的挖矿算力,并且期限为 50 个区块。那么垄断者需要将 50 个连续的区块打包起来才能完成攻击。这个概率是 0.9 的 50 次方,也就是 0.5%。而实际挑战期限远不止 50 个区块,所以攻击成功的概率极小。在 Arbitrum 的设计中,攻击者在攻击失败时会支付巨额罚款,因此垄断者发起回避攻击是非常不划算的。

干扰攻击 (jamming attacks) :攻击者发起”老式的拒绝服务攻击 (DoS)“ 来阻止任何一方发布任何交易 (不能发布包含挑战的交易)。

因为只要有一个正直的挑战者,攻击就会失败,所以攻击者必须阻止所有有可能的挑战者。如果有很多这样的挑战者,攻击将很难完成。更糟糕的是,任意利益相关的一方都可能雇佣一个沉默的监察者以作为备用计划。他们只在主要参与方太晚发布挑战或者在发布挑战时遇到了困难时才会介入。攻击者并不知道网络中是否有沉默的监察者,或者尽管知道他们存在,也不知道他们是谁,所有在这些监察者有实际行动之前,攻击者都无法向他们发起 DoS 攻击。

快速攻击 (speed demon attacks):攻击者生成链上断言的速度十分快,以至于其他方不能在时间截止之前检查并且挑战所有断言。

Arbtirum 采取的应对方法是:限制创建断言的速率,以确保在任何时候检查未决断言和挑战其中一个断言所需的总工作量能够在协议的期限之内完成。具体来说,对 Rollup 链中的智能合约运作进程施加速度限制,因此即使有人能够快速生成大量断言,它最终也必须慢下来。

总之,我们不需要太担心分叉攻击。如果出现恶意挖矿算力垄断的情况,那么可以说这个区块链已经基本上变得没有吸引力了。Arbitrum 可以通过适当的设计或者实践来防御其他三种审查攻击。

序列器模式 (Sequencer Mode) 的优势和风险

Sequencer 模式是 Arbitrum 的一个可选功能,Offchain Labs 在主网的发布版本上运行唯一的 Sequencer 节点。

Sequencer 被赋予有限的权力来控制收件箱中每笔交易的排序,以保证用户的交易结果能够立即被确定,无需在以太坊上等待五分钟至区块被确认,甚至不需要像在以太坊一样等待 15 秒的出块时间。

同时,一个表现良好的 sequencer 可以有效地防御抢跑攻击。

因此,一个由 Offchain Labs 运营的中心化的、表现良好的 Sequencer 节点,对于项目的早期开发是非常有利的,并为其减少了很多麻烦。但是安全隐患也很明显 (虽然很难想象 Offchain Labs 会作恶,但也不排除这样的可能性)。Offchain Labs 承诺在技术成熟后立即切换到去中心化的、多个 Sequencer 节点的解决方案。

此外,收件箱也将一分为二,一个接受由 Sequencer 提交的交易,另一个则接受由常规聚合器或者用户提交的交易,这也为不信任中心化的 Sequencer 的用户提供了另一种选择。