奥德赛来临 你真的看懂Arbitrum了吗_ORD:CarboFoot

在经历Luna/UST算法稳定币的崩盘后,市场持续下跌,继而又爆出了3AC,Celsuis,BlockFi等机构的一系列流动性危机。加密市场在多重打击之下,BTC已经跌破了上一轮牛市的高点,众多山寨币也相继跌去大部分的市值。

在此时刻,圈内出现了很多质疑的声音,很多人开始摇摆是否退圈,也有很多人在质疑Crypto和web3的未来,在一轮一轮的下跌中,在无数人的质疑下,很多人被洗下车,长久的离开了Crypto。但是历史的经验表明,只有顶住自我的怀疑,并对行业保持持续思考和建设的人,最终享受到了Crypto发展的红利和果实。

自从Vitalik发布《以Rollup为中心的以太坊发展路线图》之后,敏锐者已意识到,Rollup将作为以太坊应用和生态的中心,承载以太坊执行层的功能,这是以太坊未来的趋势,也是未来元宇宙的基础设施。

Arbitrum作为以太坊生态目前最大,最成熟的Rollup?Layer2,相比其他二层已有先发优势,其未来的发展基于以太坊安全性和去中心化特性的加持,很有可能继续领先其他公链和广义二层竞争对手。Arbitrum?奥德赛活动正在如火如荼的进行,如果你与我一样对Arbitrum兴趣盎然,可参考此文,加深了解,提高认知,在漫长熊市中坚定信仰。

一、老生常谈-不可能三角

相信参与Crypto或区块链的人,都多多少少听过“不可能三角”,即区块链无法同时实现“去中心化、安全性、高性能”这三个特性,任何区块链的设计只能选择其中的两个,而在一定程度上牺牲一个特性。

以太坊选择了安全性和去中心化特性,使得其在性能上不断成为后来者攻击的对象,他的竞争者们利用以太坊在完善性能的过程中于资本的助推下,抢占了部分以太坊的流量和生态,得以快速崛起,形成多链竞争的格局。

迫于智能合约公链平台的定位,以太坊在出块时间上相比比特币10min的出块时间已经做了较大的让步,PoW共识的情况下,出块时间为13S左右,而转为PoS以后,出块时间固定为12S,在出块时间对性能的提升上,做了最大的优化,如果出块时间过短或区块空间过大,其在P2P网络中的同步就会比较困难,这对网络安全存在威胁,以太坊拥有数千个节点,客户端要实现同步,在P2P网络中要留够充足的时间,否则网络极易因同步延迟出现分叉,进而影响网络的安全性和去中心化特性。

而其他公链或侧链大多为高性能和较高的TPS,放弃了去中心化特性,只选定了数量极少的节点来形成共识出块,以此使节点客户端之间的同步时间和区块空间获得提升,进而提高性能,吸引了不少用户。

说到这,很多人可能觉得这也挺好啊,可以在使用过程获得较好的体验,不过这样高性能的体验要付出代价也不小,这就不得不说一下作为侧链的Ronin——单独为Axies?infinity链游设计的侧链,2022年3月31日,Ronin的开发公司Sky?Mavis发布消息,其跨链桥中的17.36万个ETH和2550万美元现金被黑客盗走,此次损失高达6.1亿美元。

事后分析原因,是因为黑客盗取了Ronin验证器节点和Axie?DAO验证器节点的私钥伪造提款,盗窃了桥中的资产。Ronin桥由9个验证器节点,黑客仅获得了5个验证器节点的控制就盗走了资产,由此可见,牺牲去中心化和安全性换来的高性能,发生极端情况时非常的脆弱。

说了那么多,我们来聊聊区块链诞生的初心,这有助于我们拨开眼前的迷雾,看清真相。2008中本聪创造BTC,我不清楚他为什么创立BTC,但是BTC的出现造成了一个事实——一种去中心化的,足够安全的电子货币正式对中央银行的货币发起了挑战。

尽管其成长和试验的路程漫长而曲折,我们无法得知其是否会成功,但可以确定它承载了人们对去中心化的美好愿望。继比特币之后,以太坊是最具去中心化的区块链,以太坊的开发人员和社区选择了将去中心化和安全性放在首位,这也在很大程度上造就了以太坊的成功,因为人们创造和参与区块链的初心就是在这个世界里能存在一个去中心化的,足够安全不会被单点控制的系统,以太坊一直走在这条路上,这或是未来元宇宙和现实世界并存的基础,元宇宙可以实现人的跨国界,跨地域交流融合,而元宇宙的基础需要的也将是一个去中心化的,足够安全的底层。

以太坊以及以太坊生态看似会是未来最好的选择。但这是否就意味着我们不需要提高以太坊的性能了?其实不然!曾经以太坊的扩容方案,如plasma,侧链等,走了一条相对不那么安全的路,直到Rollup和模块化区块链的提出,终于让不可能三角有了松动的迹象。

二、模块化区块链

模块化区块链指的是将区块链的执行层,共识层,数据可用性层等分离,以实现区块链的可扩展性和性能的提升。以太坊在合并之前运行的主网链是执行层,负责运行虚拟机来实现世界状态的改变以及智能合约的执行,也就是运行Dapp和处理交易的地方。而合并后beacon?chain则作为共识层来替换掉现有的PoW共识机制负责以太坊新区块的出块权选择,不同于之前以太坊的挖矿方式,合并以后的以太坊不再需要重复计算哈希函数,而是通过随机挑选验证节点的方式来打包出块,并通过将区块提议者和打包者分离的方式进一步防止作恶,至此,共识层与执行层实现分离。

目前的单一区块链,共识,执行,D/A都是一层来做,而Rollup设计的出现正在将执行转移到链外,将交易的执行和状态转换放到链下,通过将数据上传到以太坊主网来保证数据可用性从而实现执行层和数据可用性层的分离。

单片区块链正像CPU的发展历程一样,向着模块化区块链发展,这是区块链平衡三难困境的最佳方案,而Rollup是破局不可能三角非常关键的一环。

三、Rollup扩容

Rollup,作为V神钦点的Layer2扩容方案,被社区认为是当下以太坊扩容的最佳路径。目前主流的Rollup扩容方案有两种,分别是Optimisitc?Rollup和ZK-Rollup,其中OP-Rollup采用欺诈证明机制来确保Rollup的安全性,主流的解决方案有Arbitrum和Optimism。ZK-Rollup采用零知识证明来确保安全性,主流的通用解决方案有zksync和Starknet等,除此之外,还有诸如Obscuro这样的TEE?Rollup方案来对以太坊扩容。

所谓的Rollup是通过将原本发生在主网的计算和部分数据的存储放到链下,来分散主网计算压力,只将计算结果以calldata的形式传回以太坊主网进行存储,存储到以太坊主网的数据为恢复Rollup链的最小数据,并通过欺诈证明和零知识证明来确保传回主网数据的正确性,以此做到Rollup对于以太坊主网安全性的继承。Rollup扩容已经成为以太坊扩容最有前景的方向,而Arbitrum在其中占据了重要的地位。

四、详谈Arbitrum的架构设计

1.Ethereum?Layer1主网合约

前文提到,Rollup是通过将数据上传到以太坊主网来确保数据可用性的,这是怎么做到的?在以太坊主网,Arbitrum部署了如下几个主要合约,inbox合约、outbox合约、ETHBridge和Rollup合约。

●inbox合约:可以理解为Arbitrum在以太坊主网开设的信箱,专门用来存放Sequencer提交的calldata数据,验证者或者生态的其他参与方可以根据inbox合约里面的数据在本地恢复出完整的Sequencer链。

●outbox合约:outbox合约主要用于接收layer2返回layer1的消息,比方说,在Arbitrum官方桥回撤资产以后,经过七天的挑战期,用户需要到官方桥去claim一下从Arbitrum回撤的资产,以实现资产回到以太坊主网的完整性。

●ETHbridge:ETHBridge合约管理着Arbitrum的官方桥,用户将资产存入Arbitrum官方桥合约,资产在以太坊主网锁定,同时通过可重试票据在将资产转移到Arbitrum。

●Rollup合约:Rollup合约负责在以太坊主网执行欺诈证明。通过链下确定争议断言以后,Rollup合约会对存在争议的交易进行交易验证,最终判定交易的正确性,同时罚没作恶方质押资产。

2.Sequencer?Chain

Sequencer?Chain指的是Sequencer对Rollup中交易进行打包进layer2区块并用链式结构连接起来的区块链,其数据结构和一般区块链的数据结构类似,Layer2的交易数据都通过Sequencer?Chain来储存,用户发起一笔交易,通过RPC将交易发送给RPC?node,RPC?node再转发给Sequencer节点,Sequencer在接收到用户的交易之后立即对交易进行打包处理,实现layer2交易的初级确认。

在收集到一段时间内的交易以后,Sequencer会将这段时间内的交易组成一个批次,经过压缩以后以calldata的形式将交易数据上传到Arbitrum部署在以太坊Layer1的Sequencer?inbox合约中,以实现将数据可用性放在以太坊主网,而将执行迁移到layer2的设计,至此,实现了layer2的第二步确认。到这里我将提出几个问题,来探讨Sequencer的细节。

●问题一:Sequencer无需共识算法竞争就有打包权,且控制在Arbitrum官方手里,是不是意味着layer2中心化了?

●问题二:Sequencer是如何处理MEV的?

●问题三:Sequencer作为推进Sequencer?Chain的主要节点,如果宕机,layer2的交易怎么办呢?

首先,我们来探讨第一个问题,目前Sequencer是运行在Arbitrum官方手里的,这是因为项目正处在发展的早期,项目方掌握Sequencer,有助于确保项目的安全升级以及Arbitrum的推进。也许对于链的掌控是存在一定的中心化问题,但是根据Sequencer上传到inbox合约中的数据,用户完全可以恢复出layer2的完整交易,并且能够顺利的将layer2的资产回撤回layer1,在资产所有权层面是足够安全的,因为其依托的是layer1的安全性。且随着项目的成熟,Sequencer也将会逐渐去中心化,交由社区和Arbitrum项目方共同来管理和运行,目前Arbitrum和Chainlink已经在去中心化的定序器方面展开了合作,未来也将推进Arbitrum?Sequencer的去中心化。

对于第二个问题,需要先了解MEV的组成,MEV包括交易手续费和三明治攻击套利,目前Sequencer由Arbitrum官方运行,对于layer2的交易是按照先到先排的原则进行交易排序和打包,并不存在三明治攻击,仅仅是收取了layer2交易计算和存储的费用以及calldata上传到主网inbox合约所需的gas费用。当Sequencer去中心化以后,会有相对较多的参与方通过随机选择成为Sequencer节点,此时出于博弈,Sequencer也会提取MEV,不过Arbitrum的路线也是会朝着MEV合理提取,最小化MEV的路线发展。

问题三,Sequencer节点宕机以后,是不是就意味着layer2上面的交易无法处理了呢?其实不然,Arbitrum在设计之初就考虑到了这个问题,当Sequencer宕机的时候,用户在Layer2发起的交易将会通过layer1RPC调用将交易发送到layer1的Delayed?inbox合约来确保交易可以被处理和存储。

3.Rollup?Chain

前文我们提到,layer2的交易在Sequencer被打包以后以calldata的形式传到layer1的inbox合约中,那谁来替我们验证存到layer1的数据是否是真实的呢,Sequencer在上传的时候是否作弊加入了虚假交易,这个时候就得说到Optimistic?Rollup特殊的欺诈证明机制了。Sequncer传到inbox合约的数据都是公开透明的,可以被全网的参与者监督,这也是欺诈证明的基础。

因为作恶者永远不知道有多少参与者在监督着链上的数据。这时候引入了另外一条链,即Rollup?Chain,也可以将之称为验证者链。每一个人在条件允许的情况下,都可以根据inbox合约中的calldata数据在自己的本地运行一条Sequencer链,因为inbox合约中的数据是还原layer2状态的最少数据,人们可以在本地运行所有的交易,以确保Sequencer没有作恶。

但是真的要所有人来维护Arbitrum状态吗?显然是不可能的,只有类似交易所这些在Arbitrum拥有大量资产的参与者会自己在本地来维护Arbitrum状态,来确保自己的资产在Arbitrum是安全的。这就是为什么说会有很多的Sequencer?Chain的原因,只不过仅有Arbitrum自己运行的那条Sequencer链才是主要维持网络的链。

而Rollup?Chian则是网络中的验证者对于网络状态质押产生的链,其运行在以太坊主网,比方说在一段时间内,验证者会对Sequencer上传到Inbox合约中的状态进行质押,即验证者押注正确的交易,通过质押ETH发布断言,声称质押这段交易历史是正确的。

如果所有的交易都是正确的,那么链的状态将会持续推进更新,可如果此时有人做恶,质押了错误的交易状态,这个时候网络中的作恶者会与押注正确状态的验证者产生冲突,此时Rollup?chain出现分歧,正义验证者和作恶者通过类似二分法的方式找到存在争议的交易,查找争议交易数据的这些操作在layer2执行,当明确争议区间以后,由部署在layer1的Rollup合约重新执行争议交易,并裁决双方的断言,最后作恶者会被罚没质押的ETH,其中的一部分会奖励给正义验证者,以奖励其对网络的保护。

为了防止作恶者攻击网络,罚没的ETH会有一部分销毁,防止正义验证者和作恶者串通,零成本攻击网络。而这就是Rollup?Chain和欺诈证明。简单叙述就是网络中的众多参与者都在本地运行完整的layer2的状态,当发现有恶意交易企图篡改链的状态的时候,众多参与者会通过欺诈证明推进链的状态朝着正确的方向前进,而欺诈证明的挑战期为7天,7天以后交易状态确认,无法再进行修改。这是layer2交易的第三级确认,在以太坊主网不分叉的前提下,第三级确认即为layer2交易的最终确认状态。

4.Ntiro

目前Arbitrum运行的网络是Arbitrum?One,offchain?labs通过mimi语言编写了AVM,AVM是Arbitrum上面兼容EVM的虚拟机,在以太坊主网上面运行的dapp可以将自己的应用无缝迁移到Arbitrum上面,因为Arbitrum实现了字节码层面的EVM兼容,这就意味着,开发者几乎无需做什么代码的调整就可以将应用部署在Arbitrum上面。

而Ntiro是ArbitrumOne的升级,在Ntiro升级中,Arbitrum优化了gas模型,使得Arbitrum的开发体验更加接近以太坊主网,对开发者和用户都更友好,除此之外,Ntiro升级将会移除AVM,取而代之的是用WASM编译的Go-Ethereum,Go-Ethereum是用Go语言编写的以太坊客户端,也是目前以太坊主网使用占比最多的以太坊客户端。此升级将会使得欺诈证明能够更好的运行在layer2,同时用户也能获得更好的交互体验,而这一切升级都是平缓转移的,用户最直观的感受是Arbitrum变得更好用了。

5.Anytrust

Anytrust链是Arbitrum推出的基于Ntiro堆栈之上实施的链,由此可见,他们大概会在相近的时间一起推出,然后一起运行,Anytrust由一个节点委员会负责运行,相比侧链,Anytrust所需的信任假设更少,传统侧链需要超过2/3的节点是诚实的才能保证链的安全,而Anytrust依赖Rollup的功能,只需要极小比例的节点是诚实的便可以确保安全,即使发生不少成员拒绝合作的情况,链依然可以通过回退到Rollup的状态以正常运行,当委员会恢复正常运行时,又会切换回Anytrust。

Anytrust的推出主要是针对链游等高频交易的应用场景,即使Ntiro能够实现较高的扩展,但是为了满足链游等应用的需求和平衡生态的发展,Anytrus将为开发者提供更多的选择,方便其构建项目和生态。

五、风物长宜放眼量

在市场下跌和行情遇冷的情况下,我们不禁会受到影响随波动摇,但学会质疑使我们能够在混乱中更加清晰的把握事物的本质。真正具有颠覆性的创新不会被市场的波动所打倒,能打败它的只有更加颠覆的创新。Rollup技术是解决以太坊扩容的颠覆性技术,是真正的在解决以太坊的性能痛点和需求,对Rollup保持信心,也对Arbitrum保持信心,以太坊扩容之路道阻且长,但值得庆幸的是,一直有优秀的团队在前行,构建产品。我们应该在这样的氛围里冷静思考,思考如何去参与构建和完善存在的问题,这会使我们头脑更加清晰,并在探索的过程中发现更多不可思议的创新!

撰文:0xCryptolee,CIGBuilder

技术审阅:Jason

编辑:吴极,CIGLabs主理人

来源:bress

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-13:456ms