Gelato 推出了 1-Click Native Price Oracles 模块,它通过利用 Rollup 堆栈的独特组件——推导层,重新构想了 Oracle 架构。
博客 — 更新
传统上,价格预言机是按每个网络(在每个 Rollup 上单独)部署的。这种手动部署过程繁琐、昂贵,并且可能需要签署法律协议。虽然对于单体 L1 来说已经足够,但它与完全自助和自动化的 1-Click Rollup 部署过程背道而驰。此外,传统的预言机将其服务的网络视为不同的实体,彼此完全隔离。因此,预言机为每个链执行重复的计算。
传统的预言机架构基于孤立区块链的假设,在成千上万个 Rollup 的世界中是不可扩展的。虽然单体 L1 实际上是孤立的,但 Rollup 并非如此,Rollup 确实有一些共同点——结算层。
推出 Gelato 一键式原生价格预言机模块,该模块原生集成到 OP Stack 中,并且开箱即可用于所有 1-Click Base L3。价格发布到单个 Rollup(中心)并由其验证,然后传播到所有其他 Rollup(分支),同时避免了前面提到的重复计算和所有相关的开销。
实现这一点的关键洞察是 Rollup 本质上充当 L1 上的索引器,允许我们使用数据,例如在称为推导的过程中发出的事件。推导层是 Rollup 架构的关键组件,因为它促进了在 L1 上发起并在 L2 上执行的存款等操作。这使得 L1 上的用户可以安全地将代币存入 L2——这是 Rollup 的关键创新之一。
注意: 术语 L1 仅指 Rollup 结算层。这本身可能是一个具有自己结算层的 Rollup。在我们的例子中,L1 实际上指的是 Base(这是一个 L2),而 L2 指的是在 Base 上结算的 Rollup(这是 L3)。
以下是存款在底层的工作原理:
注意: 步骤 2 和 3 在推导过程中进行。
Gelato 一键式原生价格预言机模块部署了一个分叉且经过稍微修改的 OP Stack,该 Stack 为推导层引入了一个额外的来源。我们首先部署一个 ´L1PriceOracle´ 智能合约,该合约通过 Gelato Web3 函数每两秒从 Pyth 接收价格更新。此智能合约在 L1 上部署一次,并由所有 Rollup 共享。它验证相关的签名以确保价格更新的合法性,并发出一个 ´PricesUpdated´ 事件,其中包含所有更新的价格 feed。当 Rollup 进入一个新 epoch 时,除了像以前一样迭代所有已存款的事件日志之外,它还会迭代所有 ´PricesUpdated´ 事件日志。就像存款一样,Rollup 然后构建一个特殊的块顶交易,该交易更新 L2 上的价格。此交易调用一个 ´L2PriceOracle´ 预部署智能合约,该合约将价格存储在链上并通过类似 Pyth 的界面公开它们。
总而言之,价格被推送到 L1 上的单个智能合约并由其验证。在每个 epoch,Rollup 本质上将已经验证的、新的价格从 L1 复制到推导期间的 L2——类似于处理存款的方式。由于发布和验证是在一个地方完成的,而不是由每个 Rollup 单独完成的,因此我们将其复杂性从 O(n) 降低到 O(1)。
然而,尽管避免了重复计算,但每两秒将价格发布到以太坊等 L1 的成本高得令人望而却步。相反,价格被发布到一个更便宜的 L2,在我们的例子中是 Base,并由 1-Click Base L3 消费。与传统的预言机不同,1-Click 预言机实际上在规模上表现更好,因为发布和验证数据的成本在所有 Rollup 之间分摊。本质上,固定成本在许多 Rollup 之间分配 (1/n)。此外,每当在中心(Base)上引入新的价格 feed 时,它都会立即在所有其他 Rollup 上可用,而无需任何额外的配置或工作。这允许快速引入新的价格 feed。
下图可视化了该架构并说明了预言机价格更新的流程:
观看此 YouTube 视频,详细了解 Gelato 上用于部署一键式 OP Stack Base L3 rollup 的新功能,该功能具有原生集成的价格预言机模块。该视频介绍了如何使用此模块部署 rollup,并解释了如何从智能合约中使用价格 feed。
一键式原生价格预言机模块今天在 Gelato 上可用。要只需单击一下即可部署你自己的 OP Stack 链,请前往 Gelato RaaS 应用程序 [插入链接]。要了解有关原生价格预言机模块的更多信息,请查看我们的 文档。
- 原文链接: gelato.cloud/blog/1-clic...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!