本文为 Arbitrum、Go Pocket 和 Rebase 社区联合举办的?『Arbitrum 基础架构讲解:快速入门』?讲座的文字整理版。 Arbitrum 是什么? Arbitrum 是以太坊的乐观式 Rollup?扩容方案,有以下特性: 无需信任的安全性:安全扎根于以太坊,任何人都可以确保正确的 L2 结果。若 L2 链完全宕机,仅凭以太坊上的信息就可以重建整条 L2 链。 以太坊兼容性:所有 EVM 标准的合约和转账都可以在 Arbitrum 上执行。 可扩展性:将以太坊的计算和存储转移至链下,吞吐量更高。 最低成本:为最小化以太坊 L1 燃气成本而生,降低每笔交易的成本。 瞬时最终性:开启序列器模式的 Arbitrum 链会有最终瞬时性这一杀手级特性,瞬时最终性也即交易确认几乎不需要等待。Arbitrum 团队上线的官方旗舰链 Arbitrum One 开启了序列器模式。 dApp 开发者关心的内容 代码需要修改吗? 支持什么语言? 开发环境一致吗? 没有 Gaslimit! 总结来说,合约开发者从以太坊迁移到 Arbitrum 其体验是相同的,几乎等同于从 Rinkeby 迁移到主网。当然,会有一小部分特性因为 L2 的原因而有所不同,请见?官方文档:与以太坊的不同点。 整体架构 Arbitrum 整体架构可以简要分为 L1 上的 EthBridge 与 L2 上的 AVM。 L1 EthBridge EthBridge 主要管理着 Inbox,Outbox 和 Rollup 合约。 Inbox:所有交易都会先发送至 Inbox 然后再送给 L2。Arbitrum 链将各条信息逐一读取并依次执行。链的状态仅取决于收件箱,Rollup 中也不存在 PoW/PoS 记账,所以交易的结果在你将交易提交到收件箱的那一刻就已经是确定的了。 Outbox:记录着在 L2 上发生的最终需要返回以太坊上的事务或消息,如提现。 Rollup 及挑战:Rollup 协议记录了一条 rollup 区块组成的概念上的链。?验证者可以提出 rollup 区块。如果有验证者不同意其他验证者提出的 rollup 区块,可以发起挑战。挑战的裁判为以太坊上的 EthBridge,输家质押的资金一半会被销毁,一半奖励给赢家。 L2 AVM Arbitrum 在 L2 底层实现了 AVM 虚拟机和指令集,并自定义了一种语言 mini 及其编译器,通过 mini 在 ArbOS 中实现了 EVM 模拟器。 ArbOS:Arbitrum 虚拟机,AVM,是 L1 和 L2 的接口。L1 提供了 AVM 接口并确保 VM 的正确运行。L2 运行 AVM 并提供了一些功能,如部署合约,运行合约,追踪余额,以及所有有智能合约的区块链所需的能力。 每个 Arbitrum 链都只有一个 AVM,执行所有运算,维护所有存储空间。有些其他系统对每个合约都单独运行一个虚拟机,而 Arbitrum 更像以太坊,一个虚拟机管理整条链。对多个合约的管理是由运行在 AVM 上的软件实现的。 欺诈证明的设计范式:再执行 vs 单步证明 当有人对 rollup 区块发起挑战时,以太坊上的仲裁合约需要对 rollup 区块的真实性做出验证。 再执行(单轮互动) Optimism 使用再执行设计范式,有挑战时直接在以太坊上重新执行整条交易。 单步证明(多轮互动) Arbitrum 使用单步证明设计范式,将被挑战的 rollup 区块中的命令通过分割协议,进行多轮分割,最终会分割为一个不可分割的最小 AVM 指令集,如 ADD。最终以太坊进行单步证明。 二者优缺点 整体而言,Arbitrum 的设计范式优于 Optimism,有以下非常关键的优点: Gas 费用低:Optimism 每次交易均需要向 L1 提交状态根,Arbitrum 则采用批量提交的方式。此差异会带来显著的 ? 费用差距。 当然,Arbitrum 这种设计也会有一些缺点,但通常我们认为这些缺点不构成实质问题: 对 Arbitrum 开发团队而言,AVM 实现更复杂。但这与用户或合约开发者无关。 多轮互动需要双方在挑战结束前都在线,以应对挑战。但这应该对于绝大部分验证者都不是问题。 用户角色 普通节点 记录并追踪 Arbitrum 链的状态并接受来自用户 RPC 调用的网络节点。类似于 L1 以太坊上的非挖矿节点。任何人都可以选择成为普通节点。 聚合器 聚合器,Aggregator。一种 Arbitrum 全节点,接收用户的交易并批量聚合提交。任何人都可以选择成为聚合器。 序列器 —— 特殊身份,特殊能力 序列器,Sequencer。一个有权对一定时间内的交易进行重排序的节点,也具有批量聚合提交交易的能力。开启序列器模式的 Arbitrum 链可以使用序列器。 由于这种排序能力,以及上面提及的进入收件箱后交易结果就确定了这两个特性,向善意的序列器(即它不会恶意地移动、延迟你的交易)提交交易后,你就可以直接根据序列器返回给你的结果确认最终性而无需参考其他消息。也即在使用 Arbitrum 的时候你会发现,提交交易后几乎瞬间交易就完成了,几乎让所有 UI 中的等待动画都失去了用武之地。 序列器在 Arbitrum One 上线初期使用的是中心化指定的方式,由 Arbitrum 官方运行,并非任何人都可以成为序列器。Arbitrum 团队日后会研发去中心化序列器方案。更多关于公正排序、去中心化序列器的信息请见?Order-Fairness for Byzantine Consensus。 即使序列器是 Arbitrum One 中主要的交易枢纽,也不能据此认为 Arbitrum 是中心化的网络。因为用户如果不信任序列器,仍然可以向其他普通节点或聚合器提交交易,这些交易将被提交给慢速收件箱(序列器使用的是快箱)。也就是说 Arbitrum 网络仍然保留着抗审查能力,即使序列器作恶也无法阻止你的交易提交。另外,序列器的排序能力是有限的,序列器更无法伪造交易。 验证者 —— L2 安全基石 验证者,Validator。质押资金并参与可争议断言(也叫 rollup 区块)的人。既可以主动发起断言更新状态,也可以监控其他验证者的断言并对错误断言进行挑战。 验证者的任务是维护 rollup 链的安全,提出新的或质押于已存在的 rollup 区块。如果有验证者不同意其他验证者提出的 rollup 区块,可以发起挑战。挑战的裁判为以太坊上的 EthBridge,输家质押的资金一半会被销毁,一半奖励给赢家。 验证者对网络的安全保障有一个简单易证的原则:anyTrust Guarantee,也叫一诚则成原则,即只要有一个诚实的验证者,即可让整个链的状态向正确的方向推进。 Rollup 协议与挑战 Rollup 协议记录了一条 rollup 区块(又叫断言,DA)的链条,它们与以太坊区块并不是同一个概念。你可以认为 rollup 链是一条概念上的单独的链,是由 Arbitrum rollup 协议管理并监控的。Rollup 链只可能有一条路径是正确的,其余的分支最终会被挑战证伪,一般情况下无人作恶则不会有错误的分支。 每个 rollup 区块包含: rollup 区块编号 父 rollup 区块编号:本 rollup 区块之前一个(被宣称为)正确的 rollup 区块的编号 本链历史上所发生的运算量(以 ArbGas 计量) 本链历史上所接收的收件箱信息数量 对本链历史输出的哈希 链状态的哈希 验证者可以提出 rollup 区块。新的 rollup 区块一开始是待决状态。最终每个 rollup 区块都会被解决,要么被确认,要么被拒绝。已确认的区块构成了整条链的历史。 质押 在任何时间,都会有一部分验证者成为质押者。质押者通过 EthBridge 充值资金,如果输掉挑战则会被没收。目前所有链接受以太币为质押物。 单笔质押可覆盖一系列 rollup 区块。每个质押者都质押在最新确认区块上;如果你质押了一个区块,你还可以继续向其子区块质押。所以你是可以质押在一串连续正确的区块上的。 创建新的 rollup 区块必须成为质押者,且已在你所创建的区块的父区块上质押了资金。如此便确保了作恶则惩罚机制能够执行。 挑战 当一名验证者不同意另一名验证者时(还有很多条件需要同时满足),会进入挑战。?每一个 DA 都有一个挑战期,在挑战期结束之前才能进行挑战。在 Arbitrum One 上为 7 天。关于如何合理地设置挑战期请参考 Ed Felten 的文章?Optimizing challenge periods in rollup | by Ed Felten | Offchain Labs | Medium。 挑战者发起挑战后,应战者将被挑战的断言分为分割协议规定的若干份;挑战者继续指出其中有问题的一段,应战者再继续分割;经过多轮互动后,问题聚焦在一条最小的不可分的指令上,应战者再向 EthBridge 提供单步证明。EthBridge 验证后整个挑战结束。 挑战结束后,一半资金会奖励给赢家。另一半资金会被销毁。?通过低成本解决争议,对输家进行高额惩罚的密码经济学方式,Arbitrum 有力地震慑了作恶行为,即使是发生争议的情况下,也不会带来明显的链上冲击。在正常情况下,验证者会观点一致并推进链的状态。 Layers 之间的互通性 代币桥接 自由代币桥接:原则上来说,L1 到 L2 代币桥接是自由、免许可的,任何人都可以将任何币种跨到 L2,甚至还可以制作自己的自定义桥。如果某币种尚未跨到 L2 上,只需要调用跨链功能即可,该操作普通用户就可以完成,无需代币项目方许可或者任何特殊权限或专业知识。但目前项目刚上线,为防止不可测的问题(如特殊代币跨链),官方还没有开启自由桥接,而使用了白名单机制。日后会放开限制。 特殊代币走桥:Rebase 型,持币生息型(如 AMPL,aETH 等),特殊功能代币(如 USDT 有冻结功能),这种需要实现特殊的桥,使用特殊桥进行迁移,否则会出现不可预知的问题。 地址映射关系:L1 上的代币跨到 L2 后,其地址是确定的。L1 地址到 L2 地址的关系为单射,且可逆推。通过权威地址映射 oracle 确保,同一个 L1 代币不论走过哪些自定义桥,在 L2 上最终只会有一个合约地址。 反向桥:L2 上的原生代币跨到 L1 上的桥,目前还不存在(虽然你可以自己实现一个)。在 L2 上原生发币又想回到 L1 的项目需要注意。 L1 到 L2:充值 充值最重要的概念是 Retryable Tickets,该机制解决了充值的原子性和多余燃气处理问题。 使用 Retryable 如果失败后,可以在一个挑战期(7 天)内重试领取。 L2 到 L1:提现 普通提现 普通提现在 L1 上有一个等待期(时长同挑战期),结束后需要手动领取,该过程也需要花费 L1 上的 Gas。 快速提现 快速提现依赖快速提现服务商,以及流动性提供者或交易对手。而快速提现能够实现而不用等待 7 天挑战期,则基于对 Arbitrum 最终性的理解,文末会详述。 主要实现方式包括可交易提款和原子锁交换。 另外,单独的 NFT、L2 向 L1 的外流信息等非同质化的 token 和 message,并不适用于基于流动性的快速提现 / 传播,因为没人能够提供等价物。 自定义官方桥 若想使用?官方桥?但自己实现另一套 UI 用于自己的产品中,请参考?arbitrum/packages/arb-ts at master · OffchainLabs/arbitrum · GitHub?中的内容。 ArbGas ArbGas 是 Arbitrum 用来管理链上执行成本的。与以太坊 gas 的理念一致,每个 AVM 指令都会有一定数量的 ArbGas 消耗,而一次运算的总成本是该运算包含的指令的 ArbGas 的加总。 我们需要关注几个点: 丰饶度和数量级:ArbGas 的值远大于 L1 的 gas。ArbGas 并不能直接与以太坊 gas 相比。开发者和用户应该把 ArbGas 理解为是比以太坊 gas 更加且便宜的。 无 gaslimit:Arbitrum 并没有硬性的 ArbGas limit,正常情况下 Arbitrum 链每秒可以消耗任意数量的 ArbGas,而在以太坊中则有 gas limit。 Computational Gas:用来描述 AVM 计算成本,一般情况下接触不到,在 Arbiscan 中每条交易的 Advanced Info 中可以查到。该数值与用户交易时的 gas 不应混淆。 二价竞拍:在以太坊上,一笔交易的燃气价格等于其声明的 gasbid(price×limit)。在 Arbitrum 则不同,gasbid 会视作该交易所愿支付的最高价格。所以,在 Arbitrum 中,提交交易时钱包上显示的 gas 使用量和实际使用量是不同的,实际使用量可能会比显示的少 50%(一个经验值,只能代表我个人在特定时间内的使用情况)。 Arbitrum 网络费用的收费机制:Arbitrum 的网络费用主要用于补偿验证者、聚合器、序列器等工作角色在 L1 上的 gas 费用,具体经济模型由 ArbOS 管理。 对 Arbitrum 交易成本的预期: Arbitrum L2 的固定成本主要来源于 L1 上的 rollup 信息提交行为,其中的固定成本可以摊薄,对固定成本而言_使用人数越多则越便宜(但对 calldata 则未必)。 另外,L1 上的 gas 水平因此也影响到 L2 上的 gas 水平。综合这两方面考虑可以说,在一定数量级内,L1 上的用户涌入到 Arbitrum 上的越多,则 Arbitrum 使用起来越便宜。 最终性 Arbitrum 上的最终性有四种层级。不同的用户或开发者,需要根据自身的需求来确定使用不同的最终性标准。对于普通用户或普通项目的开发者而言,信任序列器即可,这也是大部分钱包、应用默认的选择,用户什么也不需要做。特殊项目的开发者,如跨链协议等,可能需要考虑更加坚实的最终性以应对极端情况。 以太坊确认 一个挑战期过后 DA 被确认,最强的最终性,完全无法更改。由于时间太久,除了官方桥提现等动作需要依照此最终性以外,在实践中不太可能使用,显然你不可能在 SushiSwap 上做了一笔交易后,7 天后才能说这笔交易确认了。 信任的验证者质押 如果你信任某个验证者,或者你自己就是验证者,你可以选择相信别人或你自己。根据一诚则成原则,只要这些验证者是诚实的,他们背书的 DA 最终会得到确认。 验证者或聚合器在不质押的情况下为交易背书 不质押的验证者,或者普通的聚合器,由于缺乏质押,其可信性比上一种要小一些。但如果你信任的话,也可以采用这种标准。 信任序列器 信任序列器的最终性是最快的,几乎是瞬时的。只要序列器不作恶,那返回的结果都是正确可信的。大部分用户和 dApp 都会采用这种方式。 查看更多 —- 编译者/作者:Go Pocket 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Arbitrum基础架构与概念入门
2021-09-16 Go Pocket 来源:区块链网络
LOADING...
相关阅读:
- 查尔斯·霍斯金森(Charles Hoskinson)透露了在阿朗佐升级后未来建立更多2021-09-16
- 聚势·战未来,Alpha集团亚太区市场启动媒体见面会圆满成功2021-09-16
- V神入围《时代周刊》2021年100位最具影响力人物名单2021-09-16
- 荷西论币9.16早盘比特币以太坊2021-09-16
- 跨链基本操作2021-09-16