本文希望通过填补一些L2到L1之间的知识空缺,在使用Arbitrum浏览器的过程中,以链上数据的角度帮助大家了解Arbitrum网络。
我们假设读者具有一定对以太坊主网的认知
L1→L2→Rollup→OptimisticRollup
Layer2)方案:状态通道、侧链、Plasma和Rollup。其中,Rollups目前占据了绝对的市场份额,它将原始交易数据汇总并存放在以太坊Layer1(L1)上,而成本高昂的执行和存储移至Layer2(L2)。同时,为该批次交易生成“证明”,然后将这个证明发布在主网上。因此,Rollup的安全性由Layer1保证,比侧链之类的其他解决方案更安全
Rollups主要分为?ZK-Rollups和OptimisticRollups,二者的主要区别在于验证交易的方法,一个证明而另一个证伪。前者不依赖对任何网络参与者的信任,利用零知识证明的密码学方法证明交易的合法性。但由于其复杂的证明机制,仅限于简单的交易,且生成有效证明复杂且耗时长,市场份额较低。后者顾名思义,假设所有新添加的Rollup都是真实的,除非在7天内网络用户提出异议。拥有较高的交易处理效率,同时保证较高的安全性,是一种目前被市场认可的权衡方案。
我们这次的主角是占据市场份额超过50%的ArbitrumOne。
智能合约。EthBridge一方面裁决L2链上的纠纷,另一方面监听L2链的收件箱和发件箱。以太坊L1上的Arbitrum?收件箱合约是Arbitrum架构的重要组成部分,分为SequencerInbox和DelayedInbox。收件箱收集所有交易,并按照先到先得的原则进行排序。
Arbitrum虚拟机读取L1链上的收件箱合约,并以即定的方式执行计算。ArbOS则在AVM上运行,并执行ArbitrumL2链上的智能合约。
除了上述的重要组成部分,验证者是Arbitrum生态系统中的主要参与者。验证者是节点,观察ArbitrumLayer2上的活动并推进rollup链状态。注意,不是所有的节点都是验证者。验证Arbitrum链是完全无权需许可的。
为了方便阅读浏览器中的链上数据,我们需要了解Arbitrum交易的生命周期:
用户将交易发送至收件箱
对于L2上的原生DApp,用户可以通过钱包直接在L2提交交易
对于从L1向L2存款这样的操作,用户需要向Arbitrum在L1中的DelayedInbox合约发送交易
?2.验证者在收件箱中读取这些交易,并在L2执行
这些交易由AVM以先到先得的方式执行,输入排序器收件箱中的交易,进入ArbitrumL2执行过程。ArbitrumL2上的验证者在收件箱中读取这些交易,并以确定性的方式一起执行它们。
?3.排序器在L1提交用户的交易
Arbitrum上的验证者将提出一个包含用户交易执行的Rollup块。一旦产生rollup块,将会有一个为期一周的争议挑战,直到交易在EthereumL1上得到确认。
?4.争议期后交易得到L1的最终确认
在一周的争议窗口之后,如果没有人对区块内交易的正确性提出异议,则该区块将由以太坊Layer1确认。
跨链)。可以是$ETH也可以是其他ERC-20或ERC-721等资产。
下面,我们会以Arbitrum中常见的两类操作——$ETH和$ERC-20在L1/L2之间的存取款为例,为大家展示如何在浏览器中查询自己的交易信息。
https://www.oklink.com/zh-cn/eth/tx/0x0bb494bb6cfb438dc9806edc8a1527fcbc441b5457ad359573cfa54f62495fbb
在这笔交易的MessageDelivered事件存有用户在L2的“别名”地址,稍后在L2中会由这个别名地址给用户(0xd13)的转移这笔$ETH.
L2别名=L1_Contract_Address0x1111000000000000000000000000000000001111
3)L2:大约十几分钟后,Arbitrum会将这笔$ETH发送到用户在L2的地址(0xd13)。用户可以稍后通过上述“L2别名地址”在OKLinkArbitrum浏览器中查询这笔跨链交易在L2中的情况。
——对交易应生命周期中的第二步
https://www.oklink.com/zh-cn/arbitrum/tx/0x6d46da3fb6c0bd1689db67dcc32c5b177036f16158a015cbf6ac3d4c9a3d56e5
相反地,从L2取回$ETH到以太坊主网的操作,则是用户在L2向ArbSys发送$ETH并调用?withdrawEth(addressto)?方法,销毁L2上的$ETH。
https://www.oklink.com/zh-cn/arbitrum/tx/0x0440d56dfc01f337119ebc72665df1f00c3a4d69c558380eb2c90f0823c1d177
经过7天的挑战期后,用户地址通过调用Arbitrum在L1上Outbox合约的?executeTransaction?函数,将ArbitrumBridge合约中的$ETH发送回用户地址。
——对交易应生命周期中的第四步
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上负责接收用户请求,并提交到对应的网关合约
ThiscontentisonlysupportedinaLarkDocs
将$USDC存入Arbitrum网络主要分为三步:
1)L1:向以太坊主网的ArbitrumL1GatewayRouter合约发送一笔交易,调用outboundTransfer?函数
2)L1:Router合约继而将需要发送的ERC-20代币存至Arbitrum在L1中的CustomGateway合约地址
https://www.oklink.com/zh-cn/eth/tx/0x3a060879001d7cca38606261f877cb8a711212114fa7f420e4a6d7ba22fb473e
3)L2:用户在L2上的别名地址会负责向ArbitrumL2中的CustomGateway合约发送交易,调用?finalizeInboundTransfer?方法,在L2铸造代币发送给用户地址
https://www.oklink.com/zh-cn/arbitrum/tx/0x1204ffb31c21267f930fa1461cf7e0c929977250db2985ad611d209dc6f3f267
从Arbitrum取回$USDC的流程和存入基本类似:用户先向L2GatewayRouter合约发起提款交易,经过过网关合约在L2->L1的通信后,由网关合约将L1上的代币发送给用户。
https://www.oklink.com/zh-cn/eth/tx/0xe48ba71bd9313371402153d2f50586831e1c6c613a5aafa7a7b1ee248cbfcdf8?tab=1
小结
本文从基本的Arbitrum运行机制入手,站在链上数据的角度分析了两类最常见的Ethereum-Arbitrum交易。希望可以为大家入门Arbitrum提供帮助~
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。