搜索

全面解析 Arbitrum 安全机制:如何继承以太坊安全性?

2021-06-18 15:13:10
42615 1 0

  Arbitrum 不仅继承了 Optimistic Rollup 方案的安全特性,还在挑战期时长和审查攻击上做了考量。

Layer 2 扩容解决方案是当前以太坊社区乃至整个区块链技术圈最热门的话题,而 Arbitrum 在率先部署主网测试版之后,又获得 Uniswap、Compound 等核心 DeFi 项目的支持,无疑成为了当下最引人注目的 Layer 2 方案。

对于打算从以太坊主网迁移到 Layer 2 网络的用户来说,Layer 2 方案的安全机制是其最关心的议题之一。本文将全面解析 Arbitrum 的安全机制,包括:Arbitrum 是如何继承以太坊安全性的、为什么挑战期设置为 7 天、如何防御审查攻击等。

继承以太坊安全性

大家都知道 Layer 2 相比其他扩容方案,最大的优势之一就是完全继承以太坊安全性,但可能大多数人知其然而不知其所以然,Arbitrum 到底是如何继承以太坊的安全性的呢?

首先我们再回顾下 Optimistic Rollup 方案的主要特点:

  1. 在 Rollup 方案中,交易数据被写入 L1 (作为 calldata),但合约的实际计算和存储则是在 L2 上完成,以此来实现扩容;

  2. 某个验证者(Validator),会将一个断言提交到 L1,可以理解为该断言就是将一个 Rollup 区块内的所有交易、结果打包到了 L1 的一笔交易里;

  3. 而 Optimistic 主要是指系统对待断言的态度是乐观的,即当一个断言发布时,它不需要包含任何保证其有效性的附带证明,相反,会有一个时间窗口供任何质疑的人去挑战。挑战成功,则这个断言包含的所有交易都将被回撤,发布断言的验证者将被没收所有押金;挑战失败 / 无人挑战,则断言被接受并获得终局性。

了解了具体方案,我们再从几个角度考量 Arbitrum 是如何继承以太坊安全性的。

数据可用性

在 L2 上执行的所有交易,首先都会被提交到 L1 上运行的 Inbox 智能合约中,即作为 calldata 写入 L1。任何人都可以通过这些数据,还原 L2 上的所有交易,并将 L2 恢复到中断之前的正确状态。这些数据的可用性是通过 L1 来保证的,也因此人们完全不用担心 L2 的故障或者下线会导致自己在 L2 上的资产受损。

AnyTrust

AnyTrust 是 Rollup 协议的关键安全属性,它表示任何一个诚实的验证者都可以强制确认 L2 链的正确执行,也就是说无论有多少想作恶的人试图阻止你,你或你雇佣的人都可以强制正确处理你自己的交易,你无须信任任何第三方。

紧急退出机制

目前 Arbitrum 并没有专门定义紧急退出机制,但一系列的安全机制已经确保了用户可以达成紧急退出的目的:

  • 首先,数据可用性确保了用户在二层的资产、数据随时可以从 L1 恢复,永远不会丢失;

  • 其次,任何用户都可以将交易请求发送到 L1 的 Inbox 合约中,来强制发起提现;

  • 最后,AnyTrust 机制确保了用户自己就可以强制 L2 正确的处理这笔提现交易。

以上三点,用户都无须信任任何第三方,这充分表明 Arbitrum 完全继承了以太坊的安全性,是 Trustless 的。

为什么挑战期是 7 天

Arbitrum 是多轮交互式 Rollup 方案,方案会首先乐观的认为验证者提出的断言是正确的,直到在挑战期内由其他验证者提出挑战或反驳。大多数情况下并不会出现挑战,因此整个系统得以更快速和低成本的推进执行。

显而易见,挑战期越长,整个系统会越安全,但同时用户体验则会越差(因为用户提款时需要等待一个挑战期结束),所以如何找出挑战期的最优时长?

Arbitrum 团队提出了这样的模型来计算最优挑战期时长:

  1. 假设一个挑战期为 C 个区块的时长,攻击者可以获得的最大收益为 L2 上的所有资产 V,则攻击者得到的预期收益为:V exp(-AC),注:exp 指 e 的指数函数,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:

C = ln(10A/W)

现在我们将某个合理数值代入上面的公式,即可得到一个粗略的最优挑战期。

假设一个区块的时间内持续审查的成功率高达 99.99%,则 A=-ln(0.9999)=0.0001;

再假设每天都有 1% 的资金需要取出,按 15 秒 1 个区块计算,每个区块的取款比例约为 W=0.000002;

代入公式得出最优挑战期为 C=62146 个区块,即 10.79 天,这与 Arbitrum 团队最终选择的 7 天最优挑战期已经非常接近。

如何防御审查攻击

这一节我们讨论 Arbitrum 如何应对主要的 4 种审查攻击:分叉攻击、拒绝服务攻击、阻塞攻击、饱和攻击。

分叉攻击:矿工串通(或被贿赂)弃置包含正常挑战的区块,并通过分叉,使另一条没有包含任何挑战的区块链被接受。

首先,由于挑战者的存在,一旦发生分叉攻击,必然会被某个挑战者发现。而当大家发现所处的区块链存在算力垄断者(这是分叉攻击的前提条件),并且会为了利益不受约束的破坏规则时,对于这个区块链将会是毁灭性的打击,Arbitrum 是否采取挑战期设计模式已经无关紧要了。

拒绝服务攻击:矿工密谋(或被贿赂)在出块时不打包正常的挑战。

我们假设垄断者控制了 90% 的算力,挑战窗口期为 50 个区块,那么需要连续 50 个区块都由垄断者打包才能完成攻击,其概率为 0.9 的 50 次方,仅为 0.5%,而实际的挑战期远远多于 50 个区块,因此攻击成功概率极小。而在 Arbitrum 的设计中,每次攻击失败,攻击者都将支付大量的罚金,所以发起拒绝服务攻击对垄断者而言是相当不经济的。

阻塞攻击:攻击者通过传统的拒绝服务攻击(DoS),使得其他人无法提出挑战(无法发出包含挑战的交易)

由于只要出现一个正直的挑战者,攻击就会失败,所以攻击者必须阻止“所有”可能的挑战者,如果挑战者足够多,这是很难完成的。更进一步的,利益相关方可能会雇佣暗中监视者,它们作为后备方案,只有在参与方来不及或难以发出挑战时才介入,攻击者根本无法提前辨别这些潜伏的挑战者,自然也没办法对其发起 DoS 攻击。

饱和攻击:攻击者在很短的时间内提出大量的链上断言,让其他人来不及在时间窗口内对所有断言进行检查和挑战。

Arbitrum 防御饱和攻击的方法是对提出断言的频率进行限制,保证协议在设定的挑战窗口期内的任何时间点,全网都有足够的能力去检查待处理的断言和挑战。具体来说,会针对一条 Rollup 区块链的智能合约处理能力实施速度限制,使得即使存在某个能快速提出大量断言的人,最终也不得不慢下来。

综上所述,我们基本上不需要对分叉攻击过于担心,因为存在一个作恶的算力垄断者让这条区块链毫无吸引力;至于另外三种审查攻击,Arbitrum 都能够通过合理的设计和实践进行有效的防御。

Sequencer Mode 的优势和风险

Sequencer Mode 是 Arbitrum 的一个可选特性,主网上线的初期,官方(Offchain Labs)会运营唯一的 Sequencer 节点。

Sequencer 被赋予权利,可以控制每笔交易在 Inbox 中的顺序,从而确保它可以立即确定客户交易的结果,而无须等待以太坊上 5 分钟左右的区块确认时间,甚至也不需要等待 15 秒的区块创建时间。

同时,一个正直的 Sequencer 可以有效的防御抢跑攻击(Front-Running Attack)。

因此,由官方运营一个中心化的正直的 Sequencer 节点,对项目早期的发展可能是非常有益的,可以减少很多麻烦,但安全风险也显而易见(虽然很难想象官方会去自己作恶)。所幸官方承诺,会在技术成熟后,尽快切换至去中心化的多 Sequencer 节点方案。

除此以外,Inbox 会被一分为二,一个接受 Sequencer 提交的交易,一个接受常规的 Aggregator 或者用户提交的交易,这也给不信任中心化 Sequencer 的用户提供了另一个选择。

原文链接

热门回帖
阿伟没有死
阿伟没有死
水手 船龄 2个月
这个项目说的人很多啊,他发币吗?
2021-06-18 0
#2
热帖推荐
牛头大哥
牛头大哥
管理员 船龄 1.9年
【提问有奖】Neo 从2.0到N3,是版本迭代还是蜕变飞跃?
2020年,我们迎来了“DeFi之夏”;2021年,我们见证了NFT出圈。与此同时,DAO、存储、DID等领域也产生了许多落地应用,让市场逐渐看到了区块链的价值。区块链从早期的炒作阶段到如今的落地盛年,底层基础设施公链也随之不断迭代、升级和创新。除了要支撑大规模交易量外,链上应用对公链的功能特性要求越来越高。为了保证去中心化和安全性,链上治理也成为了当下公链的探索方向。关于Neo:Neo是一个由社区驱动的开源平台。利用区块链技术与数字身份,开发者可以通过智能合约实现资产管理数字化与自动化。Neo致力于通过分布式网络建设下一代互联网基础设施,为区块链技术大规模落地奠定基础,以实现智能经济的宏大愿景。自2016年上线至今,Neo主网已稳定运行超过四年。NeoN3预期于2021年发布,将提供更高吞吐量、更强稳定性与安全性,并带来优化的智能合约系统及功能丰富的基础设施集合,旨在赋能开发者并加速企业级区块链创新。Neo官网:https://neo.org本期嘉宾:王佳超,Neo生态拓展总监毕业于澳大利亚MonashUniversity,曾任埃森哲战略咨询顾问,多次成功创业经历,2017年加入Neo,目前主要负责NEO生态发展相关工作。AMA时间:7月29日,周四,下午3点简而言之,N3版本在原来的基础上做了哪些升级?存储、预言机为、DID放在N3的第一层还是第二层?为什么这样考虑?N3网络上线之后,生态发展的重点方向是哪里?Defi?NFT?还是存储?任何与NEO有关的问题,欢迎来聊!提问有奖:AMA结束后嘉宾将选取“优质提问奖”10名,奖励为每人100元微信现金红包。如何参与AMA?在本主题帖下直接回帖提问即可参与,嘉宾将在活动开始后上线回答,欢迎大家围观讨论!如何进群交流?微信扫下方二维码添加小助手(微信号:ljdwudi5520),回复“AMA”,小助手直接邀请进群,快进群跟小伙伴们一起交流探讨吧!
1 天前 | AMA 86615 93
比特币中本聪聪
比特币中本聪聪
副船长 船龄 2.2年
从1000万两周陪到2万是什么体验
前一段时期我经历了人生最大的考验!这时候我天天上班,对单位非常不满,天天气急败坏,用手打墙,五年从没玩过合约,急功近利赌气玩了一周币币合约,想顺势干到7000万,我做多了。小仓位爆仓了,拿现货去补从1000万陪的就剩2万了!最多519那天赔了650万。519当天手一直发抖多少次心如死灰,多少次感觉醉生梦死,多少次想一觉睡死。这种感觉持续了好长时间,幸好这这1000万是我这四年挣的,也没借高利贷,实际本金只有100万。我媳妇也没当回事,一句没责怪我,说就当买个教训了。给大家晒晒图其中有我玩fil3从5万最多到530万,回调到370万提现的图。最后我搞了50万的子弹,这波子弹我能通过我的经验,在这波牛顶能达到500万最低。最低的!拭目以待。还有我这辈子不会玩合约了!
10 小时前 | 区块链社区 27513 51 0
400刀买的bsv
400刀买的bsv
水手 船龄 1个月
涨得太急了
很明显这只是爆一波空军,马上跌回来了
10 小时前 | 区块链社区 34535 26 0