大家好,我是Harry Kalodner,Offchain Labs联合创始人兼首席技术官。非常荣幸今天有机会与各位观众探讨Arbitrum Rollup。Arbitrum Rollup是以太坊Optimistic Rollup扩容方案,支持当下L2上运行的任意Solidity智能合约。探讨Arbitrum之前请允许我介绍一下创始团队。Arbitrum想法诞生的时候,我们三人都在普林斯顿大学。Ed当时是学校的教授,Steven和我都在读博士。当时我们写了一篇关于Arbitrum的研究论文,我们三人是联名作者。之后我们决定把Arbitrum打造成能够实际使用的产品。为此我们又成立了公司,我们三人在公司工作多年,均任全职职位。
现在我想与大家分享一下,为什么我认为Arbitrum很赞。希望我讲完之后大家也能认同我的观点。Arbitrum提供了各种资产以推动以太坊通过部署智能合约,成为更安全高效的去中心化方案。Arbitrum上的交易价格比以太坊低廉很多,同时还保持着高程度的去信任特性。Arbitrum具有以太坊的安全性能,能够快速实现与以太坊的兼容。目前已有的以太坊工具、智能合约等,已经使以太坊成为开发和使用应用的高效平台。但是在以太坊之外,这些功能同样可以在Arbitrum上实现。这意味着以太坊现有用户和用例能够成功转移到Arbitrum上。既降低成本,又保留以太坊的各类出色特性。
Arbitrum不只是一个想法,而是一个已经发布的产品。今年8月我们发布了主网Beta版本。自从8月份以来,大家熟知并喜爱的很多以太坊DApp都已经部署在Arbitrum上。大量资产已经转移至Arbitrum,大批用户已在Arbitrum上完成海量交易。Arbitrum的成就让人激动。所有成就中,最重要的就是实现了切实可行的扩容方案,高效易用。各式各样的DApp都已经部署在了Arbitrum上。例如,各类DeFi市场都在Arbitrum上产生价值,现在都已可以使用,带给用户丰富的使用体验。区块链的价值归根结底来源于大量用户的流动性。这一点对我们来说尤为重要。这种方式在Arbitrum上效果很好,开放式合约部署的效率很高。
刚刚我给大家讲的就是为什么需要关注Arbitrum,Arbitrum为何如此重要。下面我想深入探讨一下技术层面的内容——技术是如何运行的,因为我认为这是截至目前Arbitrum最有意思的一部分。首先我想先谈谈关于整个系统的概括性理念,然后我会深挖有趣的细节,详细聊聊我们是如何做成Arbitrum的。
首先我想先谈几点主要的想法。第一个概念是Inbox。Inbox代表各项交易组成的清单,这些交易均由系统处理。Inbox很像以太坊上的区块。第二个概念是链状态,代表链的当前状态,状态从Inbox的交易中产生。处理这些交易的过程中会生成链状态。除了上述两个概念,各组输出信息也是重要因素。输出信息是可以从外部观察到的行为。和之前一样,本视频也会和大家深入探讨一下概念的细节。大家可以设想一下,从Arbitrum取出资产放回以太坊。大家现在一定有很多疑问。Inbox是什么?谁负责追踪Inbox?链状态是什么?这些概念存在于哪里?用户如果只是想获取一些资金,如何确认做法是正确的?如何确认各项功能是否正常运转?用户如何与系统互动?用户通过Inbox与系统互动,互动具体如何实现?Arbitrum如何与以太坊实现交互操作?我已经大体介绍了Arbitrum,Arbitrum如何依托以太坊发展,与以太坊如何连接。Arbitrum一直使用的是以太坊的安全技术,很多问题我都可以很快给出简短的回答,细节的回答会随着讲解逐渐展开。
首先是Inbox。交易数据均发布在以太坊上,Rollup的完整状态来源于各项交易。各项交易都涵盖在链上。了解Rollup状态所需的所有数据都将显示在以太坊上,所以对用户来说具有安全性。链状态包含基于这些交易的执行和存储,完全发生在链下,由节点完成。这些节点在Arbitrum上运行,完全无需借助以太坊节点。执行就是这样完成的。各位观众,执行是在链下完成的。如何证明这种做法是正确的?桥非常关键。
Optimistic Rollup就可以解决这一问题。Arbitrum Rollup运用欺诈证明,验证器会判断链的正确状态。以太坊上很难完成这一点。Arbitrum使用的是交互式欺诈证明,需要很多步,在验证器和质疑状态正确性的用户之间往复多次进行证明。证明的是用户发布的用以验证原始内容是否正确的内容。系统植根于以太坊。刚才我也讲过,Inbox在以太坊上。调节和解决这些欺诈证明的整个系统均在以太坊上。整个系统均可以达到以太坊级别的安全性能。
协议的运作方式是如何使用户能够在以太坊证明一些执行是发生在L2上的?概括地说,进行判断的链对L2的状态进行判断,判断的状态是判断发布瞬间的状态。主要的信息是看,前一次判断是正确的,如果继续执行,下一次的新状态如下。如果Alice发布了类似内容,Bob可以同意Alice的判断,Bob可以在Alice的基础上进行下一次判断,或者继续观察Alice做出的下一次判断。Bob也可以不同意Alice的判断,Bob可以发布不同的判断。问题在于如何解决Alice和Bob的分歧。现在的概念是,Alice和Bob分别可以判断链状态。需要解决的是,处理判断过程中的分歧。现在我来仔细讲讲整个流程是如何运行的。
首先,过程中所有的输入信息都会直接发布在以太坊上。判断的形式是哈希。这只是发布出来的很小一部分数据,用来代表整个Arbitrum的链状态。发布这些判断时,判断发布者也会付一些保证金。如果他们的判断错误,他们就损失掉了线上的这些保证金。对于系统来说这是非常恰当的激励措施。
如果发布的判断错误,每个人都可以上传自己的判断和保证金,用来反驳已经发布的判断,对已发布的判断进行质疑。任何人都可以纠正Rollup链的正确性,确保链的安全性有强有力的保障。出现分歧之后,问题在于如何解决分歧。下面我将和大家探讨一下交互式的过程是如何运行的。判断在Alice和Bob之间反复验证,最终判定其中一个人在说谎。关键的一步是,几轮之后我们会缩小分歧出现的范围,直到找到具体是原始判断的哪一个具体部分导致了分歧。
Arbitrum使用的是“一步式证明”,在以太坊上进行评估。要想实现这一点,以太坊必须确切知道,谁的判断是正确的。现在我来深入讲解一下,交互式的分歧具体是什么样子的。现在为大家展示的这张图片,大致展示出分歧处理的基本步骤。最开始发布判断的时候,已经经过了一系列的执行步骤。假设我的判断是,如果我执行接下来的一千个区块,新的状态将会是如何。可以在链下进行检查。自行检查判断是否正确。但是用户无法在以太坊上证明判断是否正确,涉及到的计算数量很大。因此我们采取的方法是,找到中间点。例如,可以在500个区块之后设置一个中间点。500个区块后链的状态如何?
此时,最初的判断者,也就是最开始做出判断的人,提出中间点。这样一来,一个大的判断就分成了两部分,合起来等于这个大的判断。通过这种方法将争论一分为二。各位观众现在也能看出基本思路了。不断重复寻找中间点的步骤,直到找到最小的不可再分单位,此时就可以使用一步式证明。刚才展示的是从最初的分歧,一直到最后解决分歧的步骤:分歧是如何解决的。实际操作中,整个系统比刚才讲的要复杂许多,Arbitrum采取了很多措施来更快地解决这些挑战。
例如,我们不只是每次将分歧对半分,而是每次大约都分成两百份。Arbitrum通过这种分割,迅速减少分歧规模。这个过程有很多复杂的部分,很多内容有待详细展开。但是主要的观点是,这种复杂性非常有价值,因为互动式证明是非常出色的技术,具有很多主要优点。Arbitrum Rollup因此能够成为非常高效的协议。还有一点需要注意的是,Arbitrum对执行进行判断。大多数时间此类判断分歧都不会出现。用极其少量的数据进行大型的判断,使Arbitrum在常见的Optimistic用例中成为非常高效的协议。
分歧出现时,Arbitrum可以不断切分分歧的规模,可以进行多轮切分,每一次切分规模都很小。Arbitrum的工作量很小。Arbitrum仅仅是提供哈希,不断切分分歧的规模,直到可以使用一步式证明解决。Arbitrum从不需要运行完整的交易,而是运行数量很小的交易。这种方法提高了工作效率,可处理合约规模也显著增加,因为Arbitrum从来不需要在以太坊运行任何合约或交易。Arbitrum只在小步骤上进行操作。在L2上可以运行任意规模的gas和合约,大小不受以太坊限制。
Arbitrum不只可以与以太坊兼容,同时具有灵活性。Arbitrum的欺诈证明只需要进行一步执行。Arbitrum可以在L2上实现强有力的执行,因为Arbitrum与以太坊仅保留最必须的连接。大多数时候Arbitrum上可以操作的内容基本不受以太坊限制,L2上可操作的步骤因此也基本不受以太坊限制。刚才我讲解了协议的运作方式,协议如何与以太坊互动。
现在换个话题,从L2的角度进行探讨。直接与Arbitrum进行互动的用户如何看待Arbitrum。这个角度包含Arbitrum节点,与以太坊节点非常类似,部署在任意链上的合约,名为ArbOS的兼容性层。稍后我会进行讲解。从用户体验来说,使用Arbitrum和使用以太坊非常类似。Arbitrum节点在终端使用的也是JSON-RPC标准,与以太坊一致。大多数可以在以太坊使用的工具均可以适配Arbitrum。例如, Metamask可以轻松与Arbitrum进行适配,因为Arbitrum使用的是通用界面,用户可以通过去信任方式进行套利。因为任何用户都可以单方推动Rollup链正确运行。我刚才说过,Arbitrum完全适配EVM,用户可以使用任何可在以太坊部署使用的Solidity或Vyper版本任何其他语言在Arbitrum上部署合同。用户还可以在Arbitrum上运行自己的合同。
除此之外,除了支持那些可在以太坊运行的应用,Arbitrum还可以支持很多不能在以太坊运行的应用,因为有些应用过于复杂,Arbitrum都可以运行。我刚才提到,Arbitrum成功运行离不开神奇的ArbOS系统。ArbOS是Arbitrum的L2操作系统,处理各项交易执行。我们提到的状态更新,更新链的状态至最新,各项高级功能均可实现,同时支持以太坊各项日常功能。Arbitrum有各类保守的方法可以连接L1和L2,批量处理交易,BLS签名支持,用户可以进一步压缩数据。Arbitrum可以与EVM适配,刚才提到,可以在任何时候扩展此项功能,轻松将新交易类型和功能添加至Arbitrum。Arbitrum因此成为探索高级功能、提升以太坊用户体验的新选择。
现在我们已经探讨了Arbitrum所有的构成部分,希望屏幕上的这幅图能够更清晰地解释我的观点。Arbitrum有以太坊上的Inbox,Inbox处理各项交易。Arbitrum有链状态,状态在L2进行更新输出信息,依据链状态进行判定。Arbitrum可以使用Rollup协议回溯式证明L1,这些功能都展开在这张图上。Arbitrum的用户体验佳,L2系统是基于L1系统进行搭建的,刚才给大家描述过L1系统。
刚才已经给大家介绍了Arbitrum Rollup,下面我想花几分钟和大家探讨一个让我非常兴奋的内容——Arbitrum Rollup的下一次迭代。这次迭代将是重要升级,将于明年发布。该版本名为Arbitrum Nitro。除了名字很酷炫,Arbitrum Nitro到底是什么?答案就是,该版本不仅通过定制的Assembly语言进行交互式欺诈证明,这种为Arbitrum定制的语言名为Arbitrum虚拟机。新版本转变为通过Web Assembly进行证明,实现非常高端的功能。Arbitrum因此能够汇编现有以太坊客户,在链上完成证明。
Arbitrum Nitro实现的功能是将Geth编入Arbitrum。从以太坊同步到Arbitrum处理Arbitrum链上交易的时候,可以通过改进版的Geth来完成。Arbitrum运用Geth的方式是将Geth嵌入ArbOS 2.0版本中。ArbOS 2.0是所有Arbitrum功能的升级版。这就是对Arbitrum Nitro的技术性描述。但是Arbitrum Nitro让我非常兴奋,还有一个单纯的原因——Nitro为用户带来很多重要福利。
首先,因为Nitro以Geth为基础,使用Geth代码库,Arbitrum能够提供与以太坊使用体验高度连贯一致的用户体验。更多的工具也可以从以太坊迁移到Arbitrum。例如,Arbitrum上可以添加高度适配的追踪支持。例如,现在Arbitrum还不支持使用和以太坊完全一样的工作量模型。Arbitrum和以太坊现在的模型有很大差别,因为底层结构现在还非常不同。为了充分利用Arbitrum Nitro,用户只需使用Arbitrum One即可。Arbitrum One链在Nitro即将发布的时候将会升级为Nitro。
Nitro将提供更好的用户体验。每位用户届时都应该能够感受到。Nitro使用的以太坊L1调用数据将少得多,因为Nitro能够使用更多高级压缩功能。此类功能目前在Arbitrum上还未实现。Nitro节点能够完成更多估算且成本更低,因为使用Geth代码库。Nitro得到了极大优化,同时Nitro版本还可以使用WASM进行改进。这就是Nitro未来的基本功能。概括来说,Nitro和目前的系统非常相似。目前我们的主要工作就是把L2系统工作的方式置换出来,替换掉基于Arbitrum虚拟机的ArbOS系统,用基于WASM的Geth取而代之。协议的规则保持不变,解决挑战的思维保持不变,但是Arbitrum执行和判断的内容将会进行重大升级。
非常荣幸今天能和大家分享。我很高兴能给大家讲Arbitrum相关的知识,希望大家听得开心,能够从今天我讲的内容中了解到更多Arbitrum Rollup工作的原理。感谢IOSG举办此次研讨。祝大家今天都过得愉快。如果你想了解更多Arbitrum相关的知识,屏幕上有很多途径。加入我们的Discord,浏览我们的文档,关注我们的Twitter。如果你非常感兴趣,我们的团队也在成长壮大,欢迎你来和我们聊聊加入团队的事宜。期待你联系我们。谢谢!
IOSG
微信号
IOSGVC
功能介绍
Science and technology are the primary productive forces.
https://mp.weixin.qq.com/s/RGZwwkyoCSVGYvco9OCFsg