欧科云链OKLink:一份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保证,比侧链之类的其他解决方案更安全
Rollups 主要分为 ZK-Rollups 和 Optimistic Rollups ,二者的主要区别在于验证交易的方法, 一个证明而另一个证伪 。前者不依赖对任何网络参与者的信任,利用零知识证明的密码学方法证明交易的合法性( 证明 )。但由于其复杂的证明机制,仅限于简单的交易,且生成有效证明复杂且耗时长,市场份额较低。后者(Optimistic Rollups)顾名思义,假设所有新添加的Rollup都是真实的,除非在7天内网络用户提出异议( 证伪 )。 拥有较高的交易处理效率,同时保证较高的安全性 ,是一种目前被市场认可的权衡方案。
我们这次的主角是占据市场份额超过50%的 Arbitrum One。
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链是完全无权需许可的。
为了方便阅读浏览器中的链上数据,我们需要了解 Arbitrum交易的生命周期 :
-
用户将交易发送至收件箱
-
对于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)保管
——对应生命周期中的第一步
https://www.oklink.com/zh-cn/eth/tx/0x0bb494bb6cfb438dc9806edc8a1527fcbc441b5457ad359573cfa54f62495fbb
在这笔交易的MessageDelivered事件存有用户在L2的“别名”地址(sender),稍后在L2中会由这个别名地址给用户(0xd13)的转移这笔$ETH.
L2别名 = L1_Contract_ Address + 0x1111000000000000000000000000000000001111
3)L2:大约十几分钟后,Arbitrum会将这笔 $ETH 发送到用户在L2的地址(0xd13)。用户可以稍后通过上述“L2别名地址”在OKLink Arbitrum浏览器中查询这笔跨链交易在L2中的情况。
——对交易应生命周期中的第二步
https://www.oklink.com/zh-cn/arbitrum/tx/0x6d46da3fb6c0bd1689db67dcc32c5b177036f16158a015cbf6ac3d4c9a3d56e5
相反地,从L2取回 $ETH 到以太坊主网的操作,则是用户在L2向ArbSys(0x64)发送 $ETH 并调用 withdrawEth(address to) 方法,销毁L2上的 $ETH。
经过7天的挑战期后,用户地址通过调用 Arbitrum 在L1上 Outbox 合约的 executeTransaction 函数,将 Arbitrum Bridge 合约中的 $ETH 发送回用户地址。
——对交易应生命周期中的第四步
需要强调的一个重点是,从 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
将 $USDC 存入Arbitrum网络主要分为三步:
1)L1:向以太坊主网的Arbitrum L1GatewayRouter合约发送一笔交易,调用outboundTransfer 函数
2)L1:Router合约继而将需要发送的 ERC-20 代币(这里是$USDC)存至Arbitrum在L1中的Custom Gateway合约地址
3)L2:用户在L2上的别名地址会负责向Arbitrum L2中的 Custom Gateway 合约发送交易,调用 finalizeInboundTransfer 方法,在L2铸造代币发送给用户地址
从Arbitrum取回$USDC的流程和存入基本类似:用户先向L2GatewayRouter合约发起提款交易,经过过网关合约在L2->L1的通信(Retryable Tickets)后,由网关合约将L1上的代币发送给用户。
小结
本文从基本的Arbitrum运行机制入手,站在链上数据的角度分析了两类最常见的Ethereum-Arbitrum交易。希望可以为大家入门Arbitrum提供帮助~
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum