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上存在的其他以太坊功能的支持。
ChatGPT金融业应用首批研究成果可解读美联储声明、预测股价:金色财经报道,Man AHL机器学习在4月发表了两篇新论文——《ChatGPT能否解读美联储表态?》和《ChatGPT可以预测股价走势吗?回报可预测性和大型语言模型》,将这一人工智能聊天机器人应用于市场相关的任务,一项是解读美联储的声明是鹰派还是鸽派,另一项是确定消息面对某只股票而言是利好还是利空。ChatGPT在两项测试中都取得了出色的成绩,暗示该技术在将新闻报道、推文和演讲稿等大量文字转化为交易信号方面,可能迈出了重大一步。(新浪财经)[2023/4/18 14:09:37]
设计原则
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上发布的输出根的最终性,以便它们可以被执行。存款
动态 | “Ripple取消OTC交易模式”疑似为解读错误,官方尚未宣布此消息:金色此前报道,推特账户XRP Research Center今日发推称:“Ripple将不再支持OTC模式的代币买卖,即机构购买者想要购买XRP同样需要在二级市场上购买XRP。经金色查询,目前Ripple官方目前还未发出取消OTC交易模式的公告。Twitter中提到的交易很有可能是在9月25日Bittrex与UPbit的合作关系破裂之后,双方之间进行的正常资金返还。[2019/10/30]
存款是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来支付的,因此是不可退还的。
且每单位有担保的L2Gas所要求的必须燃烧的L1Gas总量,取决于EIP-1559式收费机制报告的L2Gas价格。此外,用户根据计算费用机制更新所花费的L1Gas数量获得动态Gas津贴。
如需更深入的解释,请阅读存款部分的协议规范。
提款
提款是在L2上发起并由在L1上执行的交易完成的跨层交易。值得注意的是,L2账户可以使用提款来调用L1合约,或将ETH从L2账户转移到L1账户。
动态 | 加密资产机构加大对软件开发商投入,以通过算法解读市场情绪:据cointelegraph消息,随着近期比特币波动性的加剧,加密资产管理公司和对冲基金正在加大对软件开发商的投入,以通过算法研究解读市场情绪。帮助他们解释和利用市场情绪信号,获得更高的收益。[2019/7/17]
提款是通过在L2上调用MessagePasser预部署合约启动的,该合约在其存储中记录了消息的重要属性,然后通过调用OptimismPortal合约在L1上完成提款,以证明包含此提款消息。
这样,提款和存款就不一样了:提款交易必须使用L1上的智能合约来完成,而不是依赖于区块派生出来的信息。
分两步的提款过程
提款证明验证错误是过去几年许多跨链桥黑客攻击事件的根本原因。Bedrock版本在先前版本的提款过程中引入了一个额外的步骤,旨在为这些类型的错误提供额外的防御设计。
在分两步的提款过程中,每次提款必须在最终退出前7天提交与提款对应的Merkle证明,这种新的安全机制给了监控工具整整7天的时间来查找和检测无效的提款证明。
在此期间如果发现提款证明无效,就可以在资金丢失之前部署智能合约修复,这大大降低了跨链桥妥协的风险。
有关详细信息,请参阅提款协议规范部分。
批次交易
在Bedrock中,为L1和L2之间的消息传递定义了一种有线格式,这种有线格式的设计目的是将写入L1的成本和软件复杂性降到最低。
优化数据压缩
为了优化数据压缩,L2交易列表被组织到对象组中,每个channel的最大规模能够在可配置参数中定义,最初将设置为9.5M,这些channel预计将使用压缩功能进行压缩并提交给L1。
batch并行提交
为了并行化来自向L1提交压缩channel数据的定序器消息,channel被进一步分解为「channelframes」,这些「channelframes」是可以适合单个L1交易的压缩channel数据块。?
假设「channelframes」是相互独立的,并且顺序是已知的,那么由定序器发送到L1的以太坊交易可以并行发送,从而最大限度地降低了定序器软件的复杂性,并允许填充L1上所有可用的数据空间。
最小化以太坊Gas
Bedrock删除了L1系统在称为「batchertransactions」的交易中向L1提交channel数据所使用的所有执行Gas。之前发生在L1智能合约上的所有验证逻辑都被移动到了区块派生逻辑中。相反,「batchertransactions」被发送到以太坊上的单个EOA地址,称为「batchinboxaddress」。
分析 | TokenGazer币安中签解读:大陆用户仍为主力 机构持有较多BNB:TokenGazer分析显示:币安此次签数16666个,因为放开国内用户准入,中签率从上次MATIC的58.38%下降到30.82%;按照这次的中签率,锁定20天的BNB数量是540多万个,约3-4%的比例,再次说明大部分bnb在机构手里;另,此次中签率下降了一半,持有100个BNB以上地址大概率为活跃交易用户,可能说明用户仍旧占到币安活跃交易用户的半壁江山。[2019/5/28]
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的大小可以有所不同。?
batch派生channel将与「epochnumber」相关联的L1区块的时间戳视为确定L2上交易顺序的锚点。该协议保证一个epoch的第一个L2区块永远不会落后于所匹配epoch的L1区块的时间戳。一个epoch的第一个区块必须包含L1上的存款,以保证存款将被处理。
请注意,在Bedrock版本中,L2上的区块间隔目标配置为2秒。?
处理L1和L2时间戳
分析 | 肖飒律师解读五部门风险提示:今日,大成律师事务所律师肖飒在其个人公众号上发文,解读银保监会等五部门共同发布的《关于防范以\"虚拟货币\"\"区块链\"名义进行非法集资的风险提示》。肖飒表示,风险提示中明确提出\"代为投资,极可能是活动\"。这句话具有重要的现实立案价值。这就意味着,ETH等也有望成为罪的犯罪对象,而不仅仅是2013年被定性的特定的虚拟商品一比特币。也就是说,未来罪立案的范围可能会较大幅度扩大,保护的范围也在扩大。[2018/8/27]
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
标签:DROCHAATGCHATHydroLinkblockchain平台靠谱吗CATGE价格chatcoin币未来价值
在即将到来的周期中,许多最好的第一层区块链即将到来。他们可能会在下一次牛市中上涨30-60倍。它们可能是下一个$SOL或$ADA,以下是我最兴奋的11个即将推出的L0/L1.
注:本文来自@verumcapital推特,MarsBit整理如下:盘点这17个即将到来的ZK、OP和模块化第2层列表以找到下一个$MATIC非常感谢@BlockVerseCap的研究工作.
MarsBitCryptoDaily2023年2月8日 一、?今日要闻 SEC:将把对加密货币等新兴技术的监管作为2023年首要任务据官网声明,美国证券交易委员会表示.
2月7日,Arbitrum?开发团队OffchainLabs宣布将于今年晚些时候为ArbitrumOne和ArbitrumNova推出下一代编程环境Stylus.
Blockworks与Aptos联合创始人兼首席技术官AveryChing进行了交谈,他详细介绍了该网络的发展、对其用户群的洞察力以及他认为它现在正在获得吸引力的原因.
稳定币是早期建立DeFi生态系统最大的吸引力之一,然而并非所有的稳定币都是一样的。这节Bankless实践课将带你了解两个目前最好的去中心化稳定币的基础知识,即Liquity的LUSD和Refl.