宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 酷币 > 正文

读懂 Bedrock:Optimism 落子布局 Rollup 生态的第一步

作者:

时间:1900/1/1 0:00:00

Bedrock是OPStack有史以来第一个正式版本的名称,作为一组免费和开源的模块化组件,它旨在为Optimism的发展提供动力。

改进总结

Bedrock在其前身的基础上进行了改进,主要包含:

使用经过优化的批量交易压缩以及将以太坊作为数据可用性层,从而降低交易费用;通过更好地处理L1重组,缩短了将L1交易打包到rollups中的延迟;通过代码重用来启用模块化证明系统;通过消除设计负债来提高节点性能。更低的费用

Bedrock使用了经过优化的数据压缩策略,以最大限度地降低数据成本。我们目前正在对这一变化的影响进行基准测试,但我们预计它将大幅降低费用。?

Bedrock还消除了向L1提交数据时与EVM执行相关的所有Gas成本,与之前版本的协议相比,这将额外减少10%的费用。?

更短的存款入账时间

Bedrock在节点软件中引入了对L1重组的支持,这大大减少了用户等待存款入账所需的时间。

该协议的早期版本最多可能需要10分钟来确认存款入账,而使用Bedrock后,我们预计存款会在3分钟内确认入账。

改进的模块化证明

Bedrock从OPStack中抽象出了证明系统,以便rollup可以使用故障证明或有效性证明来证明在rollup上输入后的正确执行,这种抽象也将允许使用Cannon来证明系统中的故障。?

改进的节点性能

通过在单个rollup「区块」中执行多笔交易,而不是之前版本中「每个区块一笔交易」的模型,节点软件性能因此得到了显著提高。

这使得MerkleTrie更新的成本能在多笔交易中进行分摊,在当前的交易量下,这会使状态数据的增长幅度每年减少大约15GB。

通过消除之前版本的协议中的技术负债,节点性能也得到进一步提高,这包括不再需要一个单独的「数据传输层」节点来为L1编制索引,并更新节点软件以有效地查询来自L1的交易数据。

改进的以太坊等效性

Bedrock从一开始就被设计成尽可能与以太坊「一致」,先前版本协议中与以太坊的多项偏差已被消除,包括:

「每个区块一笔交易」的模型;自定义操作码以获取L1的区块信息;在JSON-RPCAPI中分离L1/L2费用字段;ETH余额的自定义ERC20表示形式。Bedrock还增加了对EIP-1559、区块链重组和L1上存在的其他以太坊功能的支持。

Delio将于6月28日恢复ADA、SOL等代币存取款服务:6月26日消息,韩国加密金融公司Delio发布公告称,将于北京时间6月28日11:00恢复Cardano(ADA)、Solana(SOL)、Tezos(XTZ)、Polkadot(DOT)、Kusama(KSM)、NEARProtocol(NEAR)存取款服务。[2023/6/26 22:00:15]

设计原则

Bedrock被构建为模块化和可升级的设计,同时可以复用以太坊的现有代码,并尽可能达成?100%以太坊等效的目标。

模块化

通过使用定义良好的接口和版本控制方案,Bedrock可以轻松地更换OP堆栈中的不同组件,并添加新功能。

这就允许其借助一个灵活的架构,适应以太坊生态系统的未来发展,例如:

rollup节点与执行客户端分离;模块化防故障设计。代码复用

Bedrock尽可能地使用现有的以太坊架构和基础设施,这种方法使OPStack能够从以太坊主网使用的经过实战测试的代码库中继承安全性和林迪效应优势。

您会在整个设计中找到这样的示例,包括:

最少修改的执行客户端;EVM合约而不是预编译的客户端代码。以太坊等效性

Bedrock旨在最大程度地兼容现有的以太坊开发人员体验,但由于L1和rollup之间的根本差异,也存在一些例外情况:费用模型的不同、更快的出块时间以及包含L1存款交易的特殊交易类型。

这些例外情况包括:

旨在证明最小修改的以太坊执行客户端的故障证明;以太坊执行客户端的代码重用,以供L2网络中的节点和排序器使用。协议

Rollups建立在数据可用性的基础上,在最常见的配置中,rollup协议从两个主要信息来源派生出「规范的L2链」:

交易数据由定序器发布到L1;存款交易由账户和智能合约提交到L1上的桥接合约。以下是该协议的基本组成部分:

通过直接与L1上的智能合约交互,将存款写入「规范的L2链」;提款是写入「规范的L2链」,并隐式触发与L1上智能合约和账户的交互;Batches是与rollup上的batches相对应的数据写入;区块推导是如何解释L1上的数据读取以理解「规范的L2链」;证明系统定义了L1上发布的输出根的最终性,以便它们可以被执行。存款

存款是L1上的一笔交易,并将包含在rollup中。根据定义,存款被保证包含在「规范的L2链」中,作为防止审查或控制L2的一种手段。

美国政府反对破产加密交易所 Bittrex 提出的客户资金返还计划:6月8日消息,美国政府反对破产的加密货币交易所 Bittrex 提出的客户资金返还计划,理由包括:关键供应商标准(Critical Vendor Standard)并不支持该计划,在没有向供应商付款的情况施行该计划会使供应商停止提供对债务人的经营和服务,导致债务人的业务崩溃并使重组无法进行;该动议对有争议的索赔和问题的解决是不成熟的;它不适当地试图将债权人置于计划之外,在这个时候确定从属关系或分类问题是不恰当的。与 Bittrex 相关的听证会将于 2023 年 6 月 14 日举行。

此前,Bittrex 在被 SEC 起诉后,寻求法院许可,允许客户在不支付诉讼费用和延误诉讼的情况下撤回其持有的资产。[2023/6/8 21:24:16]

从L1传递的任意消息

存款交易是作为存款的一部分进行的rollup交易。通过Bedrock,存款是完全通用的以太坊交易,例如以太坊上的账户或智能合约可以创建「存款」合约。

Bedrock定义了一个在L1上可用的存款合约:它是一个智能合约,L1帐户和智能合约可以与之交互以写入L2。L2上的存款交易是从该存款合约发出的交易中派生出来的,其中包括预期参数,例如from、to和data。

有关详细信息,请参阅存款合约协议规范部分。

在L1上购买有担保的L2Gas?

Bedrock还明确了Gas燃烧机制和存款费用市场,存款交易在L2上花费的Gas是通过Gas燃烧在L1上购买的。

这种Gas具体是在费用市场上购买的,并且在单个L1区块中提供给所有存款交易的Gas总量有一个硬性上限,该机制用于防止拒绝服务攻击,这种攻击可能发生在将交易从L1写入L2时,因为这些交易在L2上耗费大量Gas,但在L1上却很便宜。

提供给存款交易的Gas有时被称为「有担保的Gas」。GuaranteedGas的独特之处在于它是通过在L1上燃烧Gas来支付的,因此是不可退还的。

且每单位有担保的L2Gas所要求的必须燃烧的L1Gas总量,取决于EIP-1559式收费机制报告的L2Gas价格。此外,用户根据计算费用机制更新所花费的L1Gas数量获得动态Gas津贴。

如需更深入的解释,请阅读存款部分的协议规范。

提款

提款是在L2上发起并由在L1上执行的交易完成的跨层交易。值得注意的是,L2账户可以使用提款来调用L1合约,或将ETH从L2账户转移到L1账户。

Tabi(原Treasureland)完成1000万美元融资:5月11日消息,基于BNB Chain的NFT交易平台Tabi (原Treasureland) 完成1000万美元的天使轮融资,风险投资公司 Animoca Brands、Binance Labs、Draper Dragon、Hashkey Capital、Infinity Crypto Ventures 和 Youbi Capital 等参投。个人投资者包括Dragonfly Capital的冯波、沙特阿拉伯的Riyad AD和Mask Network的Suji Yan。据开发者称,这笔资金将主要用于开发 Tabi 的游戏生态系统和构建其即将推出的链上身份协议。

除了 NFT 交易和 Launchpad 功能外,Tabi 还将用户的链上活动转化为“经验值”,可用于兑换未来的空投奖励和收益。该协议还包含一个聚合区块链游戏交易和娱乐的游戏平台。(Cointelegraph)[2023/5/11 14:55:35]

提款是通过在L2上调用MessagePasser预部署合约启动的,该合约在其存储中记录了消息的重要属性,然后通过调用OptimismPortal合约在L1上完成提款,以证明包含此提款消息。

这样,提款和存款就不一样了:提款交易必须使用L1上的智能合约来完成,而不是依赖于区块派生出来的信息。

分两步的提款过程

提款证明验证错误是过去几年许多跨链桥黑客攻击事件的根本原因。Bedrock版本在先前版本的提款过程中引入了一个额外的步骤,旨在为这些类型的错误提供额外的防御设计。

在分两步的提款过程中,每次提款必须在最终退出前7天提交与提款对应的Merkle证明,这种新的安全机制给了监控工具整整7天的时间来查找和检测无效的提款证明。

在此期间如果发现提款证明无效,就可以在资金丢失之前部署智能合约修复,这大大降低了跨链桥妥协的风险。

有关详细信息,请参阅提款协议规范部分。

批次交易

在Bedrock中,为L1和L2之间的消息传递定义了一种有线格式,这种有线格式的设计目的是将写入L1的成本和软件复杂性降到最低。

优化数据压缩

为了优化数据压缩,L2交易列表被组织到对象组中,每个channel的最大规模能够在可配置参数中定义,最初将设置为9.5M,这些channel预计将使用压缩功能进行压缩并提交给L1。

CoinShares:上周数字资产投资产品净流入1.137亿美元:金色财经报道,据CoinShares报告显示,上周数字资产投资产品净流入1.137亿美元,近4周总计流入约3.45亿美元。其中比特币投资产品净流入1.038亿美元,以太坊投资产品净流入30万美元,做空比特币的投资产品净流入1460万美元。[2023/4/17 14:09:03]

batch并行提交

为了并行化来自向L1提交压缩channel数据的定序器消息,channel被进一步分解为「channelframes」,这些「channelframes」是可以适合单个L1交易的压缩channel数据块。?

假设「channelframes」是相互独立的,并且顺序是已知的,那么由定序器发送到L1的以太坊交易可以并行发送,从而最大限度地降低了定序器软件的复杂性,并允许填充L1上所有可用的数据空间。

最小化以太坊Gas

Bedrock删除了L1系统在称为「batchertransactions」的交易中向L1提交channel数据所使用的所有执行Gas。之前发生在L1智能合约上的所有验证逻辑都被移动到了区块派生逻辑中。相反,「batchertransactions」被发送到以太坊上的单个EOA地址,称为「batchinboxaddress」。

Batches仍需接受有效性检查,batche中的单个交易也是如此,无效batches和有效batches中的无效单个交易被视为被丢弃并且与系统无关。

注意:以太坊将很快升级包含EIP-4844的新版本,它引入了一个单独的数据写入费用市场,并增加了以太坊协议愿意存储的数据量上限,这一变化有望进一步降低与将数据发布到L1相关的成本。

?如需更深入的解释,请阅读有线格式规范。?

区块派生

在Bedrock中,该协议的设计旨在保证L1上存款的时间与「规范L2链」的区块派生有关。这样做是通过定序器、存款和L1区块属性将数据写入L1的纯函数。?

为了实现这一点,该协议定义了保证存款入账、处理L1和L2时间戳以及处理channel中的排序窗口以确保正确排序的策略。

保证存款入账?

区块派生协议的目标是这样进行定义的:

每个「L2区块间隔」过去后,必须有一个L2区块,且L2区块的时间戳与L1的时间戳保持同步。

CZ与RNS.ID会见阿尔巴尼亚总理埃迪·拉马:11月26日消息,CZ币安团队与帕劳身份证RNS.ID团队对阿尔巴尼亚共和国开展正式访问,阿尔巴尼亚总理埃迪·拉马于文明古城首都地拉那亲切地接待了访问团一行。双方对阿国数字化转型深入地交换了意见,CZ对拉马总理在数字化、科技化、金融化等领域取得的进展表示深切赞赏。双方表示将于日后在数字化领域展开战略合作,进一步强化阿尔巴尼亚在巴尔干地区乃至整个欧洲的数字产业引领地位。[2022/11/26 20:48:24]

在Bedrock中,引入了「sequencingepoch」的概念:它是由一系列L1区块派生出来的L2区块的范围,每个epoch由一个「epochnumber」标识,该「epochnumber」等于排序窗口中第一个L1区块的区块序号。受一些限制,epoch的大小可以有所不同。?

batch派生channel将与「epochnumber」相关联的L1区块的时间戳视为确定L2上交易顺序的锚点。该协议保证一个epoch的第一个L2区块永远不会落后于所匹配epoch的L1区块的时间戳。一个epoch的第一个区块必须包含L1上的存款,以保证存款将被处理。

请注意,在Bedrock版本中,L2上的区块间隔目标配置为2秒。?

处理L1和L2时间戳

Bedrock试图解决将L2上时间戳与存入交易中存在的L1上时间戳进行协调的问题。

它通过允许一个很短的时间窗口来进行排序,以便在epoch之间的L2交易上自由应用时间戳来实现这一点。

排序窗口是L1区块的序列,从中可以导出epoch。一个排序窗口中,其第一个L1区块的编号N包含epoch的「batchertransactions」。?

排序窗口包含区块,其中取决于排序窗口的大小:一个固定的rollup级别配置参数必须至少为2,增加它会为定序器提供了更多关于存款的L2交易排序机会,降低它为定序器提交「batchertransactions」引入的更严格时间窗口。这是在创造MEV机会和增加软件复杂性之间的权衡。

称为「最大定序器漂移」的协议常量控制一个区块在其?epoch?内可以具有的最大时间戳,有了这种漂移,定序器就可以在连接到L1出现临时问题时保持活跃。

区块派生管道

「规范的L2链」可以从头开始处理,方法是从L2创世状态开始,将L2链起始设置为第一个epoch,然后处理所有排序窗口,以便根据以下简化的顺序确定定序器batches和存款的正确顺序管道:

故障证明

在定序器处理一个或多个L2区块后,从这些区块中执行交易计算得出的输出将需要用L1写入,以实现L2到L1消息传递的无信任执行,例如提款等。

在Bedrock中,输出以树形结构的形式进行哈希处理,从而最大限度地降低了证明输出捕获的任何数据片段的成本。提议者定期向L1提交作为整个「规范L2链」的Merkle根的输出根。?

OPStack的未来升级应该包括一个故障证明变体的规范,其中包含绑定,以激励提议者提出正确的输出根。

有关完整详细信息,请阅读?L2输出根提案部分的协议规范。?

执行

在Bedrock中,OPStack通过镜像以太坊执行层和共识层之间的分离,在很大程度上不得不依赖于以太坊指定的技术关注点分离。

所以Bedrock以同样的方式引入了执行客户端和rollup节点的分离。

执行客户端

执行客户端是定序器和其他类型的节点操作员运行以确定「规范L2链」状态的系统。它还执行其他功能,例如处理入站交易和点对点通信,以及处理系统状态以处理针对它的查询。

借助Bedrock,OPStack旨在重用以太坊自己的执行客户端规范及其许多执行操作。在此版本中,Bedrock展示了对以太坊客户端go-ethereum的极其有限的修改,其差异小于2000行代码。

存在差异的根本原因有两个:处理存款交易和收取交易费用。

处理存款交易

为了在rollup中表示已存入的交易,引入了一种额外的交易类型。执行客户端实现这个新的交易类型是根据EIP-2718类型的交易标准。

收取交易费用

Rollups从根本上说还有两种与交易相关的费用:

一个是定序器费用。使用与以太坊相同的Gas表和相同的EIP-1559算法计算操作定序器的成本,这些费用用于操作排序器的协议,并根据网络拥堵情况随时波动。

另一个数据可用性费用。数据可用性成本与将批次处理交易写入L1相关,这些费用旨在支付定序器向L1提交批次交易所需支付的费用。

在Bedrock中,费用的数据可用性部分是根据称为GasPriceOracle的rollup系统智能合约中的信息确定的,该智能合约在区块派生过程中,是根据从每个epoch开始时插入的L1区块属性中检索到的Gas价格信息进行更新。

Bedrock指定在使用JSON-RPC时将这两种费用加到一个字段中。

rollup节点

与以太坊不同,Bedrock没有PoS共识。相反,「规范的L2链」的共识是由区块派生定义的。OPStack的执行客户端与一个新组件通信,该组件实现了称为rollup节点的区块派生,该节点使用与以太坊完全相同的引擎API与执行客户端通信。

rollup节点是一个无状态组件,负责通过读取L1上的数据和存款来推导系统的状态。在Bedrock中,rollup节点可用于对来自用户或其他汇总节点的传入交易进行排序,或者通过单独依赖L1来验证在L1上发布的已确认交易。

rollup节点的多种用途概述如下:

验证「规范的L2链」

运行rollup节点的最简单模式是只遵循「规范的L2链」。在这种模式下,rollup节点没有对等节点,严格用于从L1读取数据并根据区块派生协议规则对数据进行解释。

这种节点的一个目的是根据协议定义验证由其他节点共享或发布在L1上的任何输出根是否正确。此外,打算将输出根提交给L1的提议者自己可以使用optimism_outputAtBlock生成他们需要的输出根,并返回对应于L2输出根的32字节哈希值。

为此,节点应该只需要跟随「最终确定」的区块头。术语「finalized」指的是以太坊PoS共识,而「最终确定」的L2区块头是仅从「最终确定」的L1区块派生的「规范L2链」的区块头。

参与L2网络

使用rollup节点的最常见方法是参与其他rollup节点的网络、跟踪L2的进程和状态。在这种模式下,rollup节点同时读取数据和它从L1观察到的存款,将其解释为区块,并接受来自其他rollup节点网络中的用户和对等方的入站交易。

参与网络的节点可以使用它们正在同步的L2的安全和不安全区块头。

安全的L2区块头表示可以构建的rollup,其中每个区块都可以完全从参考L1链中导出,在L1必须「最终确定」之前;不安全的L2区块头包括尚未从L1派生的不安全区块。这些区块要么来自将rollup节点作为定序器操作,要么来自不安全的同步与定序器。这也称为「最新」区块头。在出现分歧的情况下,总是选择安全的L2区块头而不是不安全的L2区块头。当出现分歧时,该链的不安全部分将重组;在大多数情况下,对于终端用户应用程序,L2网络中的rollup节点将引用不安全的L2区块头。

交易排序

使用rollup节点的第三种方法是对交易进行排序。在这种模式下,rollup节点将在不安全的L2区块头之上创建新区块。目前,每个OPStack网络只有一个定序器。

定序器还负责将批次交易发布到L1,以便网络中的其他节点从中同步。

Batcher

定序器的作用是生产批次交易,为此,排序器可以运行rollup节点并具有单独的进程,这些进程通过从它们运行的??受信任的rollup节点读取来执行批处理。

这保证了OPStack的一个附加组件,称为批次交易处理程序,它从rollup节点读取交易数据并将其解释为要写入L1的批处理交易,batcher组件负责读取由定序器运行的rollup节点的不安全L2区块头,创建batcher交易,并将它们写入L1。

标准桥接合约

Bedrock还包括一对用于最常见类型存款的桥接合约,称为标准桥接合约。这些合约封装了存款和提款合约,为ETH和ERC-20代币的存款和提款提供简单的接口。

这些桥接合约的设计是在跨链桥的一侧为本地代币,另一侧包含一个可以管理铸造和销毁的封装代币,桥接原生代币涉及将原生代币锁定在合约中,然后在跨链桥的另一侧铸造等量的封装代币。

有关详细信息,请参阅标准跨链桥协议规范部分。

Cannon

虽然在Cannon中实现了防故障构建和验证,但故障证明游戏规范和将输出根挑战者集成到rollup节点中是后续规范里程碑的一部分。

延伸阅读

协议规范

协议规范定义了OPStack的技术细节,它是协议内部运作的最新事实来源。

Bedrock差异

要深入了解Bedrock与先前版本之间的差异,请参阅「Bedrock有何不同」。

责编:Lynn

标签:ROLROLLDROROCROL币roll币可以roll坐骑吗Androttweiler TokenROCKETFI

酷币热门资讯
MarsBit日报 | Binance.US获准收购Voyager;Coinbase正在裁撤日本员工;GMX协议费创历史新高

MarsBitCryptoDaily2023年1月11日 一、?今日要闻 数据:2022年L2资金流入强劲,ETH计价增长119%,美元计价下降76%BinanceResearch发布的一则报告回顾了2022年的市场.

1900/1/1 0:00:00
ReFi 赛道概览:项目与 VC 扎堆涌现,或成 2023 Web3「大叙事」

DeFi于2020年夏季腾飞,成为上一轮加密货币牛市以及此后大量投机活动的代名词。DeFi的诞生在一定程度上是为了解决银行、机构未能提供透明和包容性的金融体系的问题.

1900/1/1 0:00:00
积极推进跨链的Circle,同时在吃稳定币和跨链市场两块蛋糕?

近日,Circle?CEO?在推特上宣布,Circle的跨链传输协议(CCTP)即将推出。尽管他并未明确公开上线时间,但按照?CCTP?路线路,距离用户可以体验该协议似乎并不遥远.

1900/1/1 0:00:00
以太坊钱包的变革:账户抽象与 ERC-4337 的机遇与挑战

摘要: 未来钱包的模式更有可能是类似B2B2C的模式。钱包作为一个C端产品存在的同时,更重要的是提供一套成熟的SDK方案用于其他应用集成为应用内钱包,再面向C端用户.

1900/1/1 0:00:00
ZK Validator: 2022年零知识证明领域回顾

随着2022年即将结束,我们想整理一份关于零知识技术领域进展的报告。对于整个行业来说,今年是忙碌的一年,但我们可以自信地说,2022年是零知识证明实现突破的一年.

1900/1/1 0:00:00
ChatGPT创始人Sam Altman:我观察了数千个创业者后,总结出了成功人士的13个特质

本文来自OpenAI首席执行官SamAltman2019年在自己的博客上写的文章,howtobesuccessfulhttps://blog.samaltman.com/how-to-be-successful他在观察了数千个创业者后.

1900/1/1 0:00:00