一键原生价格预言机模块

  • gelato
  • 发布于 2024-09-06 22:12
  • 阅读 25

Gelato 推出了 1-Click Native Price Oracles 模块,它通过利用 Rollup 堆栈的独特组件——推导层,重新构想了 Oracle 架构。

博客 — 更新

一键式原生价格预言机模块

概要

  • 传统的价格预言机部署繁琐,且其孤立的架构在成千上万个 Rollup 的世界中是不可扩展的。
  • 一键式价格预言机通过利用 Rollup 堆栈的一个独特组件——推导层,重新构想了预言机架构。
  • 这使得预言机数据可以发布到并由单个 L2(中心)验证,并无缝地传播到所有 L3(分支)。
  • 原生价格预言机模块现已为所有 OP Stack Gelato 一键式 Base L3 提供。

传统价格预言机

传统上,价格预言机是按每个网络(在每个 Rollup 上单独)部署的。这种手动部署过程繁琐、昂贵,并且可能需要签署法律协议。虽然对于单体 L1 来说已经足够,但它与完全自助和自动化的 1-Click Rollup 部署过程背道而驰。此外,传统的预言机将其服务的网络视为不同的实体,彼此完全隔离。因此,预言机为每个链执行重复的计算。

  1. 价格数据从验证器网络获取并单独发布到每个链,尽管价格是相同的。此外,执行这些交易的帐户 (EOA) 会产生 gas 费用,并且必须定期充值。
  2. 收到新的价格数据后,每个链都会独立验证验证器网络生成的签名,以确保数据的合法性。

传统的预言机架构基于孤立区块链的假设,在成千上万个 Rollup 的世界中是不可扩展的。虽然单体 L1 实际上是孤立的,但 Rollup 并非如此,Rollup 确实有一些共同点——结算层。

Gelato 一键式原生价格预言机模块

推出 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)。

以下是存款在底层的工作原理:

  1. 用户调用一个智能合约,该合约锁定 L1 上的代币并发出已存款事件。
  2. 每当 Rollup 进入一个新 epoch(新的 L1 区块)时,它会迭代该区块中的交易收据并获取所有已存款的事件日志。
  3. 对于所有已存款的事件日志,Rollup 构建特殊的、对应的存款交易,这些交易包含在下一个 L2 区块的顶部。

注意: 步骤 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。

下图可视化了该架构并说明了预言机价格更新的流程:

  1. 一个链下 Gelato Web3 Function 每两秒从 Pyth 获取价格。
  2. 新的价格被推送到 Base 上的 ´L1PriceOracle 智能合约。
  3. ´L1PriceOracle´ 智能合约调用 Pyth 智能合约以验证签名并更新价格 feed。然后从 Pyth 智能合约中获取更新的价格 feed,并在 ´PricesUpdated´ 事件中发出。
  4. 当 1-Click Base L3 在一个新的 epoch 中生成一个区块时(每当有一个新的 Base 区块时),它会索引 ´L1PriceOracle´ 智能合约在推导期间发出的 ´PricesUpdated´ 事件。解码发出的事件数据并构建一个系统交易,以使用新的价格数据更新 L3 上的 ´L2PriceOracle´ 智能合约。

观看此 YouTube 视频,详细了解 Gelato 上用于部署一键式 OP Stack Base L3 rollup 的新功能,该功能具有原生集成的价格预言机模块。该视频介绍了如何使用此模块部署 rollup,并解释了如何从智能合约中使用价格 feed。

在 Gelato 上部署

一键式原生价格预言机模块今天在 Gelato 上可用。要只需单击一下即可部署你自己的 OP Stack 链,请前往 Gelato RaaS 应用程序 [插入链接]。要了解有关原生价格预言机模块的更多信息,请查看我们的 文档。

  • 原文链接: gelato.cloud/blog/1-clic...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
gelato
gelato
The Web3 Developer Cloud. Launch your own chain via our #1 Rollup-As-A-Service platform.