Arbitrum Nitro 白皮书速读:如何更兼容 EVM 和降低交易成本?

Arbitrum Nitro 技术的核心是一个新的证明器(prover),可以在 WASM 代码上进行 Arbitrum 的交互式欺诈证明。也就是说, L2 Arbitrum 引擎可以在 WASM 上运行,取代一直定制设计的 AVM(Arbitrum EVM)架构,可以使用标准的语言和工具来构建和编译。

Offchain Labs 在最新发布的 Arbitrum Nitro 白皮书中,将 Arbitrum Nitro 视为第二代 Optimistic Rollup,相比之前的 Rollup,Nitro 能够提供更?的吞吐量、更快的最终确定性和更有效的争议解决?案。

Arbitrum Nitro 技术的核心是一个新的证明器(prover),可以在 WASM 代码上进行 Arbitrum 的交互式欺诈证明。也就是说, L2 Arbitrum 引擎可以在 WASM 上运行,取代一直定制设计的 AVM(Arbitrum EVM)架构,可以使用标准的语言和工具来构建和编译。

将 Geth core 直接编译到 Arbitrum 中是 Nitro 最酷的地方,Geth 实际上定义了以太坊标准的 EVM 引擎。所以本质上,Nitro 是在以太坊之上的 Layer2 运行 Geth,并且可以证明对编译为 WASM 的 Geth 核心引擎的欺诈。

Arbitrum 此前也表示,Nitro 有着优化过后的批处理和数据压缩组件,能进一步降低 Arbitrum 的交易成本,并且具有以太坊 L1 Gas 兼容性等,除此之外,欺诈证明、排序器、代币桥也是 Nitro 的组件。由于 Nitro 建立在 WASM 和 Geth 等标准技术之上,因此它更兼容 EVM。根据白皮书,改进过后的 Nitro 相较 Arbitrum One,效率更高,延迟性更低,激励兼容性也更好。

Arbitrum 实现这些属性的设计原则包括:

  • 将事务排序与确定性执行分开;
  • 将现有的以太坊模拟软件与扩展相结合,并实现跨链功能;
  • 分别编译执?和证明;
  • 使用基于交互式欺诈证明的 Optimistic Rollup 协议将交易结果放置在 Layer1。

一、排序和确定性执行

Nitro 分两个阶段处理提交的交易,排序器(Sequencer)进行交易排序,并将订单作为实时流和压缩数据批次发布在 Layer1 链上。这些交易会按确定性状态转换函数一次处理一个有序交易,该函数更新链状态并生成 Layer2 区块,这些区块稍后会结算到 Layer1 链。

Arbitrum Nitro 白皮书速读:如何更兼容 EVM 和降低交易成本?

具体来说,排序方面,排序器受信任且诚实地对传入交易按照先后顺序进?排序,目前以两种方式发布其事务排序,首先发布一个排序交易的实时流,代表排序器最终以特定顺序记录交易的承诺;其次,Sequencer 在收集一批交易后,然后使用通用算法 brotli 对其进行压缩来降低成本,并将结果传递给 Nitro 链的 Inbox 合约(在 L1 以太坊上运行)。一旦 Sequencer 到 Inbox 的交易在以太坊上具有最终性,Nitro 链的交易顺序就是最终的。

目前排序器是由 Offchain Labs 运营的集中式组件,未来打算使?公平分布式排序协议过渡到基于委员会的排序器。

确定性执行方面,在对传⼊交易进⾏排序后,Nitro 链会使⽤链的状态转换函数(STF)对其进⾏处理,输出更新的状态并生成 Layer2 区块。

二、软件架构:Geth at the Core

Nitro 将 Geth 编译进来是 Nitro 的第⼆个关键设计理念,Geth 指的是以太坊节点软件 go-ethereum。Nitro 中的 core 执⾏和状态维护功能由开源 go-ethereum (geth)package 代码处理,确保其执⾏和状态与以太坊⾼度兼容。

构成 Nitro 节点的软件可以被认为是内置在三个主要层中,分别为基础层——Geth core(模拟 EVM 合约执行和维护构成以太坊状态的数据结构)、中间层(ArbOS)以及顶层,其中,ArbOS 是⼀个软件层,实现了管理 Layer2 链所必需的功能,包括记账功能、⽀持 Nitro 和 Layer1 以太坊之间的双向安全跨链调⽤以及特定于 Layer2 的费⽤跟踪和收集。

跨链交互方面,Nitro 的跨链消息传递功能还可⽤于创建代币桥,这是⼀个允许在以太坊和 Nitro 链之间有效转移资产的应⽤。Offchain Labs 团队已经实施并发布了⼀个非正式代币桥,提供对可替代代币的存入或提款功能。另外,新的和改进的批处理和压缩系统也能最大限度地降低 L1 成本。

顶层则由节点软件组成,处理来⾃客户端的连接和传入的 RPC 请求,并提供操作与以太坊兼容的区块链节点所需的其他功能。

Arbitrum Nitro 白皮书速读:如何更兼容 EVM 和降低交易成本?

三、执行与证明分开

Nitro 通过对执行和证明使用相同的源代码,但针对这两种情况将其编译为不同的⽬标。在编译 Nitro 节点软件执⾏时,使⽤的是普通的 Go 编译器,为⽬标架构生成原生代码,当然对于不同的节点部署会有所不同。

另外,状态转换函数部分的代码由 Go 编译器编译为 WebAssembly(WASM),这是?种类型化的、可移植的机器代码格式。然后,WASM 代码经过简单的转换和修改,转换成称为 WAVM 的格式。

白皮书指出,WAVM 在三个主要方面与 WASM 不同,分别为去除了 WASM 的一些 Go 编译器没有?成的特性;限制了 WASM 的一些功,包括去除了浮点指令和不包含嵌套控制流;添加了一些操作码以实现与区块链环境的交互等。

如果对计算状态转换函数的正确结果存在争议,则通过参考 WAVM 代码的交互式欺诈证明协议来解决。

四、具有交互式欺诈证明的 Optimistic Rollup

在最初的 Arbitrum 设计的基础上,Nitro 使用改进的 Optimistic Rollup 协议,该协议使用优化过后的交互式欺诈证明协议。

这个 Rollup 协议是 Nitro 用于确认 Layer2 链状态和 Layer1 以太坊上的相关数据的方法。 Layer2 用户通常不会等待 L1 确认,而是依赖确定性状态转换函数,该函数允许从记录的交易序列中得出交易结果。

该 Rollup 协议产生了一条 Rollup Blocks(RBlock)链,与 Layer2 区块不同,一个 Rollup Block 通常包装(encapsulate)了一系列 Layer2 区块,因此 RBlock 的数量远少于 L2 块。最初一个 RBlock 代表某方声称称 RBlock 的数据是正确的。最终,每一个这样的声明要么被协议确认,要么被拒绝后从 RBlock 链中删除。这组已确认的 RBlock 将从创世 RBlock 开始形成?条链。

(声明:请读者严格遵守所在地法律法规,本文不代表任何投资建议)

(0)
上一篇 2022年8月27日 下午9:20
下一篇 2022年8月28日 上午11:37

相关推荐

发表回复

登录后才能评论
微信

联系我们
邮箱:whylweb3@163.com
微信:gaoshuang613