二层扩展解决方案是当前以太坊上讨论最热门的话题,也是整个区块链技术社区中最热门的话题。Arbitrum是基于Optimistic Rollups的二层扩展解决方案,率先部署了其主网的测试版,并获得了Uniswap和Compound等核心DeFi项目的支持,成为目前最引人注目的二层解决方案。
从以太坊主网迁移到二层解决方案的安全机制,是用户最关心的问题之一。在这篇文章中,我们将对Arbitrum的安全机制进行深入探讨,包括Arbitrum如何扎根于以太坊安全性中,为什么挑战期是7天,以及如何防御审查攻击。
扎根于以太坊安全性中
与其他扩容方案相比,Layer 2最大的优势是它完全依赖的以太坊安全性,大多数人可能知道这一点,但不知道为什么。Arbitrum是如何扎根于以太坊安全性中的?
我们先来回顾一下Optimistic Rollup方案的主要特点:
1. 在Rollup解决方案中,交易被写在L1(作为calldata),但合约的计算和存储是在L2上完成的,实现扩容。
2. 验证者在L1上发布一个断言,可以理解为将所有交易打包成一个Rollup块并发送到L1交易上。
3. 当断言被发布时,系统默认这一断言是正确的。但是会一个时间窗口,在这期间任何人都可以挑战该断言。如果挑战成功,该断言中包含的所有交易将被撤销,断言者将失去他们的保证金。如果挑战期过后没有挑战成功,则断言被接受并成为最终结果。
在了解了具体的解决方案后,让我们从几个角度考虑Arbitrum是如何扎根于以太坊安全性中的。
数据可用性
所有在L2上执行的交易都会先提交给运行在L1上的Inbox智能合约,并作为calldata写入L1上。任何人都可以使用这些数据来检索L2上的所有交易,并将L2恢复到其原始状态。这个数据的可用性是通过L1保证的,用户不必担心L2故障会给他们在L2上的资产带来损失。
AnyTrust
AnyTrust是Rollup协议的一个关键安全特性。这个功能意味着任何诚实的验证者都可以确保L2上交易的正确执行。无论有多少恶意的人试图阻止交易,你或你雇佣的人都可以确保交易正确执行,而不需要相信任何第三方。
紧急退出机制
Arbitrum目前没有专门的紧急退出机制,但是有一系列的安全机制来保证用户可以紧急退出。
首先,数据的可用性保证了用户在L2上的资产和数据可以随时从L1上恢复,并且永不丢失。
其次,任何用户都可以向L1上的Inbox合约发送交易请求,强制退出。
最后,AnyTrust机制确保用户可以强制L2正确处理退出交易。
对于以上三点,用户不需要信任任何第三方,这充分说明了Arbitrum植根于以太坊安全性中。
为什么挑战期是7天
Arbitrum是一个多轮互动的Rollup解决方案。该解决方案首先会乐观地认为验证者所做的断言是正确的,直到它在挑战期内被其他验证者质疑或反驳。在大多数情况下,没有挑战,整个系统可以更快地取得进展,而且成本较低。
显然,挑战期越长,整个系统就越安全,但同时用户体验也会变差(因为用户在退出时需要等到挑战期结束)。那么我们如何找到最佳的挑战期呢?
Arbitrum团队提出了这样一个模型来计算最佳挑战期:
1. 假设一个挑战期是C块的长度,攻击者在L2上能得到的最大值是V。那么攻击者得到的预期值是V exp(-AC)。
注意:exp是指数函数 e,A是某个常数A,AC前面的-号意味着C与预期回报成反比。
2.断言者需要认捐远大于攻击价值的资产来应对攻击。我们假设是10倍,断言者的成本是10V exp(-AC)I。I是资本利率。
3. 我们假设锁定在挑战期的提款用户的提款资产为CWV(其中W为小数,WV是L2上总资产的一部分,每个时间点会有C块未结束挑战),用户的资产成本为CWVI。
4. 最佳挑战期的长度是在断言者和退出用户的总资产成本最低的时候。也就是说,当取C的值时,10V exp(-AC)I+CWVI处于最小。V和I发生在两个条款中,它不会影响最低点,可以忽略。我们只需要取C的导数,将所得导数设为0,得到C=ln(10A/W)/A。
现在我们把一些合理的数字插入上述方程,得到一个粗略的最佳挑战期。
假设一个区块时间的连续审查的成功率高达99.99%,相当于A=-ln(0.99)=0.01。
进一步假设每天有总价值的1%被提取,按15秒一个区块计算,每个区块的提取比例约为W=0.000002。
将这些插入公式,我们得到一个最佳挑战延迟C=62146个区块,即10.79天,这与Arbitrrum团队最终选择的7天最佳挑战期非常接近。
如何抵御审查制度的攻击
在本节中,我们将讨论Arbitrum如何防御四种主要类型的审查攻击:分叉攻击、回避攻击、干扰攻击和速度恶魔攻击。
分叉攻击:矿工合谋(或被收买)丢弃包含正常挑战的区块,以便接受一个不包含挑战的替代链。
首先,由于挑战者的存在,一旦发生分叉攻击,将不可避免地被某个挑战者发现。而当大家发现区块链中的挖矿垄断者(这是分叉攻击的前提条件)为了利益不受约束地破坏规则时,区块链本身就已经被破坏了。此时,无论Arbitrum是否采用挑战期的设计模式,这一点都没有意义。
回避攻击:矿工合谋(或受贿),在他们制作的区块中省略正常的挑战。
我们假设垄断者控制了90%的挖矿算力,期限是50个区块。垄断者需要连续打包50个区块来完成攻击。概率是0.9的50次方,也就是只有0.5%。而实际的挑战期远远超过50个区块,所以攻击成功的概率是非常小的。在Arbitrum的设计中,当攻击失败时,攻击者将支付巨额罚款,垄断者发起回避攻击是相当不划算的。
干扰攻击:攻击者发起老式的拒绝服务攻击(DoS),阻止其他方发布任何交易(无法发布包含挑战的交易)。
由于只要有一个诚实的挑战者,攻击就会失败,攻击者必须干扰所有可能的挑战者。如果有很多这样的挑战者,攻击就已经很难完成了。更糟糕的是,任何利益相关方可能已经雇用了一个沉默的观察者作为备份。他们只在主要参与者太晚或难以发布挑战时才会介入。攻击者不会知道是否有沉默的观察者,或者如果他们存在,他们是谁,所以在他们行动之前,没有实际的方法来发起DoS攻击。
速度恶魔攻击:攻击者产生链上断言的速度非常快,以至于其他各方没有时间在最后期限前检查和挑战所有断言。
Arbitrum防御速度恶魔攻击的方法是限制断言的创建速度,以确保在任何时候,检查待定断言并在挑战一个断言所需的总工作能在协议的最后期限内顺利完成。具体来说,是对Rollup链中的智能合约的进展施加一个速度限制,因此,即使有人能够快速制造出大量的断言,它最终也不得不放慢速度。
综上所述,我们不需要太担心分叉攻击。在发生恶意挖矿垄断的情况下,这种区块链已经从根本上失去了吸引力。Arbitrum可以通过适当的设计或实践来抵御其他三种审查攻击。
Sequencer模式的优势和风险
Sequencer模式是Arbitrum的一个可选的功能,Offchain Labs在主网启动时操作唯一的Sequencer节点。
Sequencer被赋予有限的权力来控制Inbox中每笔交易的排序,以保证用户交易的结果立即生效,而不需要在以太坊上等待5分钟来确认区块,甚至不需要像在以太坊一样等待 15 秒的出块时间。
同时,一个行为良好的sequencer可以有效地抵御Front-Running攻击。
因此,由Offchain Labs运营的集中式、行为良好的Sequencer节点对项目的早期发展非常有利,可以减少很多麻烦,但安全风险也很明显(虽然很难想象Offchain Labs会有恶意)。Offchain Labs承诺,一旦技术成熟,将改用去中心化的多Sequencer节点方案。
此外Inbox将一分为二,一个接受Sequencer提交的交易,另一个接受常规聚合器或用户提交的交易,这也为不信任中心化Sequencer的用户提供了另一种选择。
原文:hackernoon
编译:比巴卜呀