区块见闻 区块见闻
Ctrl+D收藏区块见闻

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

作者:

时间:

原文标题:《BedrockExplainer》

撰文:Optimism?官方

编译:Frank,ForesightNews

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

区块链入围IUPAC 2021年度化学领域十大新兴技术:金色财经报道,国际纯粹与应用化学联合会(IUPAC)公布了2021年度化学领域十大新兴技术榜单,区块链技术入围。数字化的进步使化学创新更具可重复性和可追踪性,区块链可以存储不同类型的信息,但迄今为止最常见的用途是作为交易的数字分类账。值得注意的是,区块链是去中心化的,因此没有任何个人或团体可以控制,并且输入的数据会被永久记录和访问。英国化学家已经尝试使用区块链来跟踪一系列简单的计算,其中每个阶段的过程都被记录下来并在数字分类账中共享。一些化工公司已经创建了基于区块链的系统来实现供应链的现代化,从而实现安全交易和持续跟踪货物。(中国化工报)[2021/11/15 21:51:13]

「每个区块一笔交易」的模型;

自定义操作码以获取L1的区块信息;

在JSON-RPCAPI中分离L1/L2费用字段;

ETH余额的自定义ERC20表示形式。

Bedrock还增加了对EIP-1559、区块链重组和L1上存在的其他以太坊功能的支持。

设计原则

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

模块化

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

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

rollup节点与执行客户端分离;

模块化防故障设计。

代码复用

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

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

最少修改的执行客户端;

EVM合约而不是预编译的客户端代码。

以太坊等效性

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

这些例外情况包括:

旨在证明最小修改的以太坊执行客户端的故障证明;

以太坊执行客户端的代码重用,以供L2网络中的节点和排序器使用。

支持比特币交易的Cash App入围美区苹果商店年度前十:支持比特币交易的Cash App以及Venmo登上苹果美国区App Store年度免费应用排行榜,其中Cash App位列第十位,Venmo位列第十八位。[2020/12/2 22:55:29]

协议

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

交易数据由定序器发布到L1;

存款交易由账户和智能合约提交到L1上的桥接合约。

以下是该协议的基本组成部分:

通过直接与L1上的智能合约交互,将存款写入「规范的L2链」;

提款是写入「规范的L2链」,并隐式触发与L1上智能合约和账户的交互;

Batches是与rollup上的batches相对应的数据写入;

区块推导是如何解释L1上的数据读取以理解「规范的L2链」;

证明系统定义了L1上发布的输出根的最终性,以便它们可以被执行。

存款

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

从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来支付的,因此是不可退还的。

动态 | 火币科技年度财报:全年营业收入同比下滑9.6%:12月16日晚,火币科技(前称:桐成控股)发布截至2019年9月30日的年度财报。财报显示,截至2019年9月30日止,火币科技的全年营业收入同比下滑9.6%,至3.12亿港元;归属股东净利润亏损607.6万港元,去年同期则盈利659.1万港元;每股约亏损1.989港元。此之外,火币科技2019年财年的员工有672名,较去年811名员工,减少139名员工,约削减了17%。[2019/12/18]

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

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

提款

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

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

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

分两步的提款过程

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

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

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

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

批次交易

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

优化数据压缩

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

动态 | 区块链集团因欠缺资金或将延迟刊发年度业绩:区块链集团(00364)公布,截至公告日期,由于该集团的相关管理层并没有为清盘人提供协助,清盘人未能取得若干主要在中国营运的子公司的账簿及记录。清盘人现正采取措施确定该集团的最新事务。由于欠缺资金进行审计工作,预计刊发年度业绩及寄发相关的年度报告可能会被延迟,公司股份继续停牌。[2019/2/19]

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的时间戳保持同步。

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

动态 | 年度报税截止期临近 英国税务局提醒加密货币投资需报税:1月31日是英国人递交年度纳税申报表的截止期。英国税务海关总署(HMRC)更新的指引提示国民,如果持有比特币或其他加密货币的投资,要留意可能需要缴纳企业税、个人所得税或者资本利得税。其发言人称:“在交易活动中,如果包括比特币在内的一种资产被作为投资持有,而并非作为运营资金,由此推断,这种处理产生的任何盈利或者收益都将缴资本利得税。”如果年度投资结果是亏损,那么可以留待未来纳税年度,抵扣应税所得。[2019/1/17]

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有何不同」。

标签:ROCEDRROCK以太坊ROCKS币HORSEDRACEFloki Rocket以太坊交易犯法吗

pepe最新价格热门资讯
PLA:盘点 ETHDenver 进入决赛圈的 18 个新项目_区块链怎么入手

作者:BlockBeats区块律动ETHDenver2023大会已进入尾声,刚刚大会官方公布了评委会选出的入选BUIDLWeek的18个项目.

LYG:DeFi 叙事再起,盘点几个收益不错的 faming 机会_ether币对人民币汇率

原文来源:TheDeFiInvestor编译:Azuma,Odaily星球日报?本文内容系TheDeFiInvestor推文的编译与补充,并不代表本平台的观点,也不构成投资建议.

ETH:盘点 Polygon @The Pit 加速器 11 个获奖项目_POLY价格

原文标题:《Polygon@ThePit加速器11个获奖项目速览》作者:PolygonDevelopers编译:angelilu.

ROC:年度盘点:2022 以太坊大事记_以太坊

作者:Stephanie/Franci,ECN2022年即将过去,回望过去这一年,以太坊社区有苦亦有乐.

区块链:一文全览 Cryptogram Venture (CGV) 2022 年度投资版图_区块链挣钱是真的假的

原文来源:CryptogramVenture2022年,对加密行业来说是极其不平常的一年。以Luna/UST的崩溃为起点,3AC、FTX等大型机构参与者相继暴雷,加之严峻的宏观金融环境“去杠杆化.

WEB:Filecoin 新叙事:兼容 EVM 存储链,用智能合约加入公链战局_Filecoin 12Month

撰文:月之暗面,PANews预热许久的FilecoinEVM终于官宣定档3月14日,届时,主网将通过Filecoinnv18Hygge升级正式获得EVM虚拟机兼容能力.