欧科云链OKLink:一份Arbitrum浏览器的使用指南

本文约2143字,阅读全文需要约3分钟
以链上数据的角度,帮助大家了解Arbitrum网络。

本文希望通过填补一些L2到L1之间的知识空缺,在使用Arbitrum浏览器的过程中,以链上数据的角度帮助大家了解Arbitrum网络。

我们假设读者具有一定对以太坊主网的认知(可参考成为链上数据分析师之路

Intro

L1 → L2 → Rollup → Optimistic Rollup

为了解决网络拥堵问题,同时降低交易Gas费,出现了一系列以太坊二层网络(Layer2)方案:状态通道、侧链、Plasma和Rollup。其中,Rollups目前占据了绝对的市场份额,它将原始交易数据汇总(Rollup)并存放在以太坊Layer 1(L1)上,而成本高昂的执行和存储移至Layer 2(L2)。同时,为该批次交易生成“证明”,然后将这个证明发布在主网上。因此,Rollup的安全性由Layer 1保证,比侧链之类的其他解决方案更安全

欧科云链OKLink:一份Arbitrum浏览器的使用指南

Rollups 主要分为 ZK-Rollups 和 Optimistic Rollups,二者的主要区别在于验证交易的方法,一个证明而另一个证伪。前者不依赖对任何网络参与者的信任,利用零知识证明的密码学方法证明交易的合法性(证明)。但由于其复杂的证明机制,仅限于简单的交易,且生成有效证明复杂且耗时长,市场份额较低。后者(Optimistic Rollups)顾名思义,假设所有新添加的Rollup都是真实的,除非在7天内网络用户提出异议(证伪)。拥有较高的交易处理效率,同时保证较高的安全性,是一种目前被市场认可的权衡方案。

我们这次的主角是占据市场份额超过50%的Arbitrum One。

欧科云链OKLink:一份Arbitrum浏览器的使用指南

Arbitrum工作机制

Arbitrum 的目的是解决交互式争议。因此 Arbitrum 命名指的是法律术语中的“仲裁员”,意为裁决争议的人。

Arbitrum L2与Ethereum L1之间有一套名为 EthBridge 的智能合约。EthBridge 一方面裁决 L2 链上的纠纷,另一方面监听L2链的收件箱和发件箱。以太坊L1上的 Arbitrum 收件箱合约(Inbox)是 Arbitrum 架构的重要组成部分,分为 Sequencer Inbox 和 Delayed Inbox。收件箱收集所有交易,并按照先到先得的原则进行排序。

Arbitrum虚拟机(AVM)读取L1链上的收件箱合约,并以即定的方式执行计算。ArbOS(Arbitrum Layer2的操作系统)则在AVM上运行,并执行Arbitrum L2链上的智能合约。

除了上述的重要组成部分,验证者是Arbitrum生态系统中的主要参与者。验证者是节点,观察Arbitrum Layer2上的活动并推进rollup链状态。注意,不是所有的节点都是验证者。验证Arbitrum链是完全无权需许可的。

欧科云链OKLink:一份Arbitrum浏览器的使用指南

为了方便阅读浏览器中的链上数据,我们需要了解Arbitrum交易的生命周期

  1. 用户将交易发送至收件箱

  • 对于L2上的原生DApp,用户可以通过钱包直接在L2提交交易

  • 对于从L1向L2存款这样的操作,用户需要向Arbitrum在L1中的Delayed Inbox合约发送交易

  2. 验证者在收件箱中读取这些交易,并在L2执行

这些交易由AVM以先到先得的方式执行,输入排序器收件箱中的交易,进入Arbitrum L2执行过程。Arbitrum L2 上的验证者在收件箱中读取这些交易,并以确定性的方式一起执行它们。

  3.排序器在L1提交用户的交易

Arbitrum 上的验证者将提出一个包含用户交易执行的Rollup块。一旦产生 rollup 块,将会有一个为期一周的争议挑战,直到交易在 Ethereum L1 上得到确认。

  4.争议期后交易得到L1的最终确认

在一周的争议窗口之后,如果没有人对区块内交易的正确性提出异议,则该区块将由以太坊 Layer1 确认。

典型交易分析

了解Arbitrum的运行机制后,再来阅读浏览器中的数据将会无比通畅。

想要参与Arbitrum,享受到更低的手续费和更快的交易速度,第一步往往需要从以太坊主网向Arbitrum二层网络发送一定的资产(跨链)。可以是$ETH也可以是其他ERC-20或ERC-721等资产。

下面,我们会以Arbitrum中常见的两类操作——$ETH 和 $ERC-20 在L1/L2之间的存取款为例,为大家展示如何在浏览器中查询自己的交易信息。

$ETH在Arbitrum上的存款和取回

从以太坊主网向Arbitrum存入 $ETH 实际是一种跨链操作——在L1存入$ETH、L2负责记账,在链上主要分为三步:

1)L1:用户在L1向 Arbitrum 的 Delayed Inbox 合约发送一笔交易,来调用 depositEth(address destAddr) 函数。

2)L1:Inbox合约会将用户的 $ETH 存入Arbitrum的Bridge合约(0x831)保管

——对应生命周期中的第一步

欧科云链OKLink:一份Arbitrum浏览器的使用指南

https://www.oklink.com/zh-cn/eth/tx/0x0bb494bb6cfb438dc9806edc8a1527fcbc441b5457ad359573cfa54f62495fbb

在这笔交易的MessageDelivered事件存有用户在L2的“别名”地址(sender),稍后在L2中会由这个别名地址给用户(0xd13)的转移这笔$ETH.

L2别名 = L1_Contract_ Address + 0x1111000000000000000000000000000000001111

欧科云链OKLink:一份Arbitrum浏览器的使用指南

3)L2:大约十几分钟后,Arbitrum会将这笔 $ETH 发送到用户在L2的地址(0xd13)。用户可以稍后通过上述“L2别名地址”在OKLink Arbitrum浏览器中查询这笔跨链交易在L2中的情况。

——对交易应生命周期中的第二步

欧科云链OKLink:一份Arbitrum浏览器的使用指南

https://www.oklink.com/zh-cn/arbitrum/tx/0x6d46da3fb6c0bd1689db67dcc32c5b177036f16158a015cbf6ac3d4c9a3d56e5

相反地,从L2取回 $ETH 到以太坊主网的操作,则是用户在L2向ArbSys(0x64)发送 $ETH 并调用 withdrawEth(address to) 方法,销毁L2上的 $ETH。

欧科云链OKLink:一份Arbitrum浏览器的使用指南

https://www.oklink.com/zh-cn/arbitrum/tx/0x0440d56dfc01f337119ebc72665df1f00c3a4d69c558380eb2c90f0823c1d177

经过7天的挑战期后,用户地址通过调用 Arbitrum 在L1上 Outbox 合约的 executeTransaction 函数,将 Arbitrum Bridge 合约中的 $ETH 发送回用户地址。

——对交易应生命周期中的第四步

欧科云链OKLink:一份Arbitrum浏览器的使用指南

https://www.oklink.com/zh-cn/eth/tx/0xb8933b60aa3b35681c96233c8afa1ce4b7fdf89eca362de55507afe503be7fe4?tab=1

需要强调的一个重点是,从 Layer1 到 Layer2 的交易很快就会得到确认,类似于正常的以太坊 Layer1上的 交易。但是,对于从 Layer2 到 Layer1 的交易,在 Layer1 确认交易之前有 1 周的争议期。尽管以太坊链仅在 1 周争议期后才知道 rollup 块的正确性,但由于 Arbitrum 虚拟机的确定性,一旦交易进入收件箱合约,每个观察第 2 层的人都已经知道结果。

$USDC在Arbitrum上的存款和取回

要将ERC-20代币从以太坊主网跨到L2,主要由三类合约完成跨链操作:

  • 资产合约:L1和L2上的ERC-20代币合约

  • 网关合约:L1和L2上的真正负责跨链操作的合约

  • 路由合约:L1和L2上负责接收用户请求,并提交到对应的网关合约

This content is only supported in a Lark Docs

欧科云链OKLink:一份Arbitrum浏览器的使用指南

将 $USDC 存入Arbitrum网络主要分为三步:

1)L1:向以太坊主网的Arbitrum L1GatewayRouter合约发送一笔交易,调用outboundTransfer 函数

2)L1:Router合约继而将需要发送的 ERC-20 代币(这里是$USDC)存至Arbitrum在L1中的Custom Gateway合约地址

欧科云链OKLink:一份Arbitrum浏览器的使用指南

https://www.oklink.com/zh-cn/eth/tx/0x3a060879001d7cca38606261f877cb8a711212114fa7f420e4a6d7ba22fb473e

欧科云链OKLink:一份Arbitrum浏览器的使用指南

3)L2:用户在L2上的别名地址会负责向Arbitrum L2中的 Custom Gateway 合约发送交易,调用 finalizeInboundTransfer 方法,在L2铸造代币发送给用户地址

欧科云链OKLink:一份Arbitrum浏览器的使用指南

https://www.oklink.com/zh-cn/arbitrum/tx/0x1204ffb31c21267f930fa1461cf7e0c929977250db2985ad611d209dc6f3f267

从Arbitrum取回$USDC的流程和存入基本类似:用户先向L2GatewayRouter合约发起提款交易,经过过网关合约在L2->L1的通信(Retryable Tickets)后,由网关合约将L1上的代币发送给用户。

欧科云链OKLink:一份Arbitrum浏览器的使用指南

https://www.oklink.com/zh-cn/eth/tx/0xe48ba71bd9313371402153d2f50586831e1c6c613a5aafa7a7b1ee248cbfcdf8?tab=1

小结

本文从基本的Arbitrum运行机制入手,站在链上数据的角度分析了两类最常见的Ethereum-Arbitrum交易。希望可以为大家入门Arbitrum提供帮助~

原创文章,作者:欧科云链OKLink。转载/内容合作/寻求报道请联系 report@odaily.email;违规转载法律必究。

ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

推荐阅读
星球精选