Arbitrum 基础架构与概念入门_NFT:RBI

本文为Arbitrum、GoPocket和Rebase社区联合举办的?『Arbitrum基础架构讲解:快速入门』?讲座的文字整理版。

Arbitrum是什么?

Arbitrum是以太坊的乐观式Rollup?扩容方案,有以下特性:

无需信任的安全性:安全扎根于以太坊,任何人都可以确保正确的L2结果。若L2链完全宕机,仅凭以太坊上的信息就可以重建整条L2链。

以太坊兼容性:所有EVM标准的合约和转账都可以在Arbitrum上执行。

可扩展性:将以太坊的计算和存储转移至链下,吞吐量更高。

最低成本:为最小化以太坊L1燃气成本而生,降低每笔交易的成本。

瞬时最终性:开启序列器模式的Arbitrum链会有最终瞬时性这一杀手级特性,瞬时最终性也即交易确认几乎不需要等待。Arbitrum团队上线的官方旗舰链ArbitrumOne开启了序列器模式。

dApp开发者关心的内容

代码需要修改吗?代码无需修改。完整的EVM兼容性对开发者是相当友好的。

支持什么语言?Solidity/Vyper,没有编译器、版本限制。

开发环境一致吗?各种工具如Truffle、HardHat以及IDE均可以在Arbitrum上使用,开发环境完全一致。

没有Gaslimit!Arbitrum上没有gaslimit,合约开发者有新的玩法。

总结来说,合约开发者从以太坊迁移到Arbitrum其体验是相同的,几乎等同于从Rinkeby迁移到主网。当然,会有一小部分特性因为L2的原因而有所不同,请见?官方文档:与以太坊的不同点。

整体架构

Arbitrum整体架构可以简要分为L1上的EthBridge与L2上的AVM。

L1EthBridge

EthBridge主要管理着Inbox,Outbox和Rollup合约。

Offchain Labs发布Arbitrum Orbit开发工具和快速入门指南:6月22日消息,Arbitrum开发团队Offchain Labs发布Arbitrum Orbit开发工具,旨在帮助开发人员在L3区块链Arbitrum Orbit上更轻松地进行开发,并管理自己的Arbitrum Rollup和Any Trust链。此外,Offchain Labs还提供了快速入门指南和Orbit DevNet链上工具,后续将发布测试网和主网指南。[2023/6/22 21:53:51]

Inbox:所有交易都会先发送至Inbox然后再送给L2。Arbitrum链将各条信息逐一读取并依次执行。链的状态仅取决于收件箱,Rollup中也不存在PoW/PoS记账,所以交易的结果在你将交易提交到收件箱的那一刻就已经是确定的了。

Outbox:记录着在L2上发生的最终需要返回以太坊上的事务或消息,如提现。

Rollup及挑战:Rollup协议记录了一条rollup区块组成的概念上的链。?验证者可以提出rollup区块。如果有验证者不同意其他验证者提出的rollup区块,可以发起挑战。挑战的裁判为以太坊上的EthBridge,输家质押的资金一半会被销毁,一半奖励给赢家。

L2AVM

Arbitrum在L2底层实现了AVM虚拟机和指令集,并自定义了一种语言mini及其编译器,通过mini在ArbOS中实现了EVM模拟器。AVM:一个在L2上运行的『操作系统』。ArbOS对不同的合约进行隔离并追踪其资源使用情况。

ArbOS:Arbitrum虚拟机,AVM,是L1和L2的接口。L1提供了AVM接口并确保VM的正确运行。L2运行AVM并提供了一些功能,如部署合约,运行合约,追踪余额,以及所有有智能合约的区块链所需的能力。

每个Arbitrum链都只有一个AVM,执行所有运算,维护所有存储空间。有些其他系统对每个合约都单独运行一个虚拟机,而Arbitrum更像以太坊,一个虚拟机管理整条链。对多个合约的管理是由运行在AVM上的软件实现的。

欺诈证明的设计范式:再执行vs单步证明

去中心化期权协议Numoen现已在Arbitrum上线:12月9日消息,去中心化期权协议Numoen发布公告称,现已在Arbitrum上线。其最初将仅支持ETH和DPX,之后每隔一天会支持一种代币。Numoen表示,“其智能合约已经过Certik审计,不过并不能保证用户资金安全,交互可能存在风险,永远不要期待治理代币。”

据悉,Numoen此前曾获Uniswap基金会的5000美元赠款。[2022/12/9 21:33:00]

当有人对rollup区块发起挑战时,以太坊上的仲裁合约需要对rollup区块的真实性做出验证。Arbitrum与Optimism使用了不同的设计范式。最终导致了双方架构和流程有了显著不同,二者的优缺点与整体设计都来自各自的设计范式。

再执行

Optimism使用再执行设计范式,有挑战时直接在以太坊上重新执行整条交易。

单步证明

Arbitrum使用单步证明设计范式,将被挑战的rollup区块中的命令通过分割协议,进行多轮分割,最终会分割为一个不可分割的最小AVM指令集,如ADD。最终以太坊进行单步证明。

二者优缺点

整体而言,Arbitrum的设计范式优于Optimism,有以下非常关键的优点:

Gas费用低:Optimism每次交易均需要向L1提交状态根,Arbitrum则采用批量提交的方式。此差异会带来显著的?费用差距。无Gaslimit:由于单步证明每次都分割为最小指令,Arbitrum不需要引入gaslimit。而Optimism为了确保每笔交易都能被以太坊验证,那每笔交易都必须低于以太坊的gaslimit。更轻便的证明:AVMstate易于被L1证明,单步证明也缩减了证明所需的gas消耗。指令集灵活性:对EVM实现,AVM使用虚拟化设计,而OVM使用容器化设计。如果EVM修改/删除了某些操作码,Optimism在L1上的历史交易的可验证性上将变得比较棘手。而AVM掌握自己的技术标准,不存在此问题。EVM兼容性:AVM是EVM全兼容的,这意味着合约开发者不需要修改代码即可迁移,而移植到Optimism上则需要对代码进行修改,Optimism需要特殊的solidity编译器来生成OVM字节码,开发者需要遵循其特殊规则。

ZigZag:已上线基于Arbitrum网络的DEX,包括wETH与wBTC等交易对:8月12日消息,作为zkSync主网上唯一交易平台的ZigZag宣布,现已上线Arbitrum网络,用户可以在ZigZag平台交易wETH、wBTC和ZZ。在上线前两周,ZigZag不收取任何交易费用,用户只需要支付gas即可交易。[2022/8/12 12:20:57]

当然,Arbitrum这种设计也会有一些缺点,但通常我们认为这些缺点不构成实质问题:

对Arbitrum开发团队而言,AVM实现更复杂。但这与用户或合约开发者无关。

多轮互动需要双方在挑战结束前都在线,以应对挑战。但这应该对于绝大部分验证者都不是问题。

用户角色

普通节点

记录并追踪Arbitrum链的状态并接受来自用户RPC调用的网络节点。类似于L1以太坊上的非挖矿节点。任何人都可以选择成为普通节点。

聚合器

聚合器,Aggregator。一种Arbitrum全节点,接收用户的交易并批量聚合提交。任何人都可以选择成为聚合器。

序列器——特殊身份,特殊能力

序列器,Sequencer。一个有权对一定时间内的交易进行重排序的节点,也具有批量聚合提交交易的能力。开启序列器模式的Arbitrum链可以使用序列器。

由于这种排序能力,以及上面提及的进入收件箱后交易结果就确定了这两个特性,向善意的序列器提交交易后,你就可以直接根据序列器返回给你的结果确认最终性而无需参考其他消息。也即在使用Arbitrum的时候你会发现,提交交易后几乎瞬间交易就完成了,几乎让所有UI中的等待动画都失去了用武之地。

序列器在ArbitrumOne上线初期使用的是中心化指定的方式,由Arbitrum官方运行,并非任何人都可以成为序列器。Arbitrum团队日后会研发去中心化序列器方案。更多关于公正排序、去中心化序列器的信息请见?Order-FairnessforByzantineConsensus。

即使序列器是ArbitrumOne中主要的交易枢纽,也不能据此认为Arbitrum是中心化的网络。因为用户如果不信任序列器,仍然可以向其他普通节点或聚合器提交交易,这些交易将被提交给慢速收件箱。也就是说Arbitrum网络仍然保留着抗审查能力,即使序列器作恶也无法阻止你的交易提交。另外,序列器的排序能力是有限的,序列器更无法伪造交易。

starbucks.eth域名以50枚ETH成交:7月14日消息,starbucks.eth域名以50枚ETH(价值近5.4万美元)成交。[2022/7/14 2:13:26]

验证者——L2安全基石

验证者,Validator。质押资金并参与可争议断言的人。既可以主动发起断言更新状态,也可以监控其他验证者的断言并对错误断言进行挑战。

验证者的任务是维护rollup链的安全,提出新的或质押于已存在的rollup区块。如果有验证者不同意其他验证者提出的rollup区块,可以发起挑战。挑战的裁判为以太坊上的EthBridge,输家质押的资金一半会被销毁,一半奖励给赢家。

验证者对网络的安全保障有一个简单易证的原则:anyTrustGuarantee,也叫一诚则成原则,即只要有一个诚实的验证者,即可让整个链的状态向正确的方向推进。

Rollup协议与挑战

Rollup协议记录了一条rollup区块的链条,它们与以太坊区块并不是同一个概念。你可以认为rollup链是一条概念上的单独的链,是由Arbitrumrollup协议管理并监控的。Rollup链只可能有一条路径是正确的,其余的分支最终会被挑战证伪,一般情况下无人作恶则不会有错误的分支。

每个rollup区块包含:

rollup区块编号

父rollup区块编号:本rollup区块之前一个正确的rollup区块的编号

本链历史上所发生的运算量

本链历史上所接收的收件箱信息数量

对本链历史输出的哈希

链状态的哈希

验证者可以提出rollup区块。新的rollup区块一开始是待决状态。最终每个rollup区块都会被解决,要么被确认,要么被拒绝。已确认的区块构成了整条链的历史。

质押

在任何时间,都会有一部分验证者成为质押者。质押者通过EthBridge充值资金,如果输掉挑战则会被没收。目前所有链接受以太币为质押物。

Blockdaemon和StakeWise推出流动质押平台Harbour:6月7日消息,区块链基础设施提供商Blockdaemon和流动性质押平台StakeWise宣布,在以太坊主网上推出面向机构客户的流动质押平台Harbour。

Harbor客户将在平台上质押以太坊后获得质押凭证代币,机构可以在其他获得许可的DeFi协议上使用代币来获得额外收益,同时仍保持其质押的以太坊。(The Block)[2022/6/7 4:07:46]

单笔质押可覆盖一系列rollup区块。每个质押者都质押在最新确认区块上;如果你质押了一个区块,你还可以继续向其子区块质押。所以你是可以质押在一串连续正确的区块上的。

创建新的rollup区块必须成为质押者,且已在你所创建的区块的父区块上质押了资金。如此便确保了作恶则惩罚机制能够执行。

挑战

当一名验证者不同意另一名验证者时,会进入挑战。?每一个DA都有一个挑战期,在挑战期结束之前才能进行挑战。在ArbitrumOne上为7天。关于如何合理地设置挑战期请参考EdFelten的文章?Optimizingchallengeperiodsinrollup|byEdFelten|OffchainLabs|Medium。

挑战者发起挑战后,应战者将被挑战的断言分为分割协议规定的若干份;挑战者继续指出其中有问题的一段,应战者再继续分割;经过多轮互动后,问题聚焦在一条最小的不可分的指令上,应战者再向EthBridge提供单步证明。EthBridge验证后整个挑战结束。

挑战结束后,一半资金会奖励给赢家。另一半资金会被销毁。?通过低成本解决争议,对输家进行高额惩罚的密码经济学方式,Arbitrum有力地震慑了作恶行为,即使是发生争议的情况下,也不会带来明显的链上冲击。在正常情况下,验证者会观点一致并推进链的状态。

Layers之间的互通性

代币桥接

自由代币桥接:原则上来说,L1到L2代币桥接是自由、免许可的,任何人都可以将任何币种跨到L2,甚至还可以制作自己的自定义桥。如果某币种尚未跨到L2上,只需要调用跨链功能即可,该操作普通用户就可以完成,无需代币项目方许可或者任何特殊权限或专业知识。但目前项目刚上线,为防止不可测的问题,官方还没有开启自由桥接,而使用了白名单机制。日后会放开限制。

特殊代币走桥:Rebase型,持币生息型,特殊功能代币,这种需要实现特殊的桥,使用特殊桥进行迁移,否则会出现不可预知的问题。

地址映射关系:L1上的代币跨到L2后,其地址是确定的。L1地址到L2地址的关系为单射,且可逆推。通过权威地址映射oracle确保,同一个L1代币不论走过哪些自定义桥,在L2上最终只会有一个合约地址。

反向桥:L2上的原生代币跨到L1上的桥,目前还不存在。在L2上原生发币又想回到L1的项目需要注意。

L1到L2:充值

充值最重要的概念是RetryableTickets,该机制解决了充值的原子性和多余燃气处理问题。在L1充值到L2时,如果不使用Retryable,一旦出现L1成功了但L2上失败的情况,用户的钱将永久被锁定在L1合约里。所以当前的Arbitrum版本已经禁止非Retryable的普通方法。

使用Retryable如果失败后,可以在一个挑战期内重试领取。

L2到L1:提现

普通提现

普通提现在L1上有一个等待期,结束后需要手动领取,该过程也需要花费L1上的Gas。

快速提现

快速提现依赖快速提现服务商,以及流动性提供者或交易对手。而快速提现能够实现而不用等待7天挑战期,则基于对Arbitrum最终性的理解,文末会详述。

主要实现方式包括可交易提款和原子锁交换。目前有cBridge,renBridge,Connext等方案为Arbitrum提供快速提现或跨链服务。

另外,单独的NFT、L2向L1的外流信息等非同质化的token和message,并不适用于基于流动性的快速提现/传播,因为没人能够提供等价物。

自定义官方桥

若想使用?官方桥?但自己实现另一套UI用于自己的产品中,请参考?arbitrum/packages/arb-tsatmaster·OffchainLabs/arbitrum·GitHub?中的内容。

ArbGas

ArbGas是Arbitrum用来管理链上执行成本的。与以太坊gas的理念一致,每个AVM指令都会有一定数量的ArbGas消耗,而一次运算的总成本是该运算包含的指令的ArbGas的加总。

我们需要关注几个点:

丰饶度和数量级:ArbGas的值远大于L1的gas。ArbGas并不能直接与以太坊gas相比。开发者和用户应该把ArbGas理解为是比以太坊gas更加且便宜的。

无gaslimit:Arbitrum并没有硬性的ArbGaslimit,正常情况下Arbitrum链每秒可以消耗任意数量的ArbGas,而在以太坊中则有gaslimit。

ComputationalGas:用来描述AVM计算成本,一般情况下接触不到,在Arbiscan中每条交易的AdvancedInfo中可以查到。该数值与用户交易时的gas不应混淆。

二价竞拍:在以太坊上,一笔交易的燃气价格等于其声明的gasbid(price×limit)。在Arbitrum则不同,gasbid会视作该交易所愿支付的最高价格。所以,在Arbitrum中,提交交易时钱包上显示的gas使用量和实际使用量是不同的,实际使用量可能会比显示的少50%。

Arbitrum网络费用的收费机制:Arbitrum的网络费用主要用于补偿验证者、聚合器、序列器等工作角色在L1上的gas费用,具体经济模型由ArbOS管理。

对Arbitrum交易成本的预期:

ArbitrumL2的固定成本主要来源于L1上的rollup信息提交行为,其中的固定成本可以摊薄,对固定成本而言_使用人数越多则越便宜。另外,L1上的gas水平因此也影响到L2上的gas水平。综合这两方面考虑可以说,在一定数量级内,L1上的用户涌入到Arbitrum上的越多,则Arbitrum使用起来越便宜。

最终性

Arbitrum上的最终性有四种层级。不同的用户或开发者,需要根据自身的需求来确定使用不同的最终性标准。对于普通用户或普通项目的开发者而言,信任序列器即可,这也是大部分钱包、应用默认的选择,用户什么也不需要做。特殊项目的开发者,如跨链协议等,可能需要考虑更加坚实的最终性以应对极端情况。

以太坊确认

一个挑战期过后DA被确认,最强的最终性,完全无法更改。由于时间太久,除了官方桥提现等动作需要依照此最终性以外,在实践中不太可能使用,显然你不可能在SushiSwap上做了一笔交易后,7天后才能说这笔交易确认了。

信任的验证者质押

如果你信任某个验证者,或者你自己就是验证者,你可以选择相信别人或你自己。根据一诚则成原则,只要这些验证者是诚实的,他们背书的DA最终会得到确认。

验证者或聚合器在不质押的情况下为交易背书

不质押的验证者,或者普通的聚合器,由于缺乏质押,其可信性比上一种要小一些。但如果你信任的话,也可以采用这种标准。

信任序列器

信任序列器的最终性是最快的,几乎是瞬时的。只要序列器不作恶,那返回的结果都是正确可信的。大部分用户和dApp都会采用这种方式。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:0ms0-6:200ms