您现在的位置是:主页 > 区块链 >

tp钱包官网下载app|SevenX Ventures:深入了解zkOracle和zkCoprocessor的概念及其区别

2023-12-06 21:00:21区块链 人已围观

简介本文介绍了最近流行的 zkCoprocessor 和 zkOracle 概念,并比较了它们的差异。zkCoprocessor 最初由 Axiom 推广,代表了“在链上证明历史数据并在智能中消耗信任地使用该数据”的组件。RISC...

本文介绍了最近流行的 zkCoprocessor 和 zkOracle 概念,并比较了它们的差异。zkCoprocessor 最初由 Axiom 推广,代表了“在链上证明历史数据并在智能中消耗信任地使用该数据”的组件。RISC Zero 则将计算从链上卸载到链下。数据访问zkCoprocessor主要将某些数据馈送到智能合约,而zkVM计算zkCoprocessor将O(n)计算压缩为O(1)验证。zkOracle与zkCoprocessor的功能相似,但具有更精准的解决方案,并可以为开发者提供更完整的技术栈。最终,对于需要丰富的数据访问和大量计算的DApp和DeFi 3.0等应用程序来说,zkOracle 是一个完美的选择。

0、引言

在这篇文章中,我们将了解最近流行的 zkCoprocessor 和 zkOracle 概念,并比较它们的差异。

1、zkCoprocessor的定义

当一个术语被创造出来时,它的真正含义并不是由它本身定义的。我们在区块链的例子中已经看到过很多这样的情况。

  • ZK:虽然学术界经常提到零知识的隐私特征,但在区块链背景下,ZK往往只代表技术的简洁性和有效性。即使是基于ZK Rollup构建的项目也称自己为zkSomething。
  • DA:到目前为止,很多人还没有真正认识到数据可用性不是数据存储,所以为了解决这个术语问题,有人建议用 DP(Data Publishing)代替 DA,或者把 DA 的意义全部变成数据发布+数据存储。

我们在 zkCoprocessor 中看到了类似的现象。每个人都使用这个术语,但他们不一定指的是相同的事物。

因此我们想表达项目本身对 zkCoprocessor 的看法,社区对 zkCoprocessor 的理解,以及从我们的角度来看 zkCoprocessor 的真正意义和作用。

a) 来自项目本身

Axiom 的定义 1:zkCoprocessor 在链上证明历史数据。

zkCoprocessor的概念由Axiom推广,最初将其设想为zkAttestor。从Axiom的想法来看,zkCoprocessor代表了“在链上证明历史数据并在智能中消耗信任地使用该数据”的组件。

请注意,Brevis 团队表示,这种类型的 zkCoprocessor 本质上是底层 zk 电路之上的 API/DSL 层。所以这是不简单的。

RISC Zero 的定义 2:zkCoprocessor 将计算从链上卸载到链下。

RISC Zero也经常将自己称为zkCoprocessor。从他们的角度来看,他们将zkCoprocessor视为一个更广泛的概念,“一种使用ZKP将计算从链上卸载到链下的工具”。

b) 来自社区

Peteris的定义(同1):zkCoprocessor可以访问历史链上状态。

Aera Finance 的 Peteris 认为,zkCoprocessor 的作用非常像一个状态机,主要功能是访问历史数据。同时,他和来自 BananaHQ 的 Rishabh 认为定义 2 的描述是 zkVM,而不是 zkCoprocessor 的类。

Messari、Modular Media 和 Kobi 的定义(与 2 相同):zkCoprocessor 将计算从链上卸载到链下。

Messari 也给出了自己对 zkCoprocessor 的定义。Messari 研究人员 Sami 认为,zkCoprocessor 使智能合约开发人员能够轻松地将复杂的逻辑卸载到链下,从而消除新的信任假设。Modular Media 也给出了同样的概念几何的Kobi将rollup与协处理器进行了比较,Brevis补充说zkCoprocessor权衡了维持永久状态存储的成本与高度提升性能,Taiko提出了Booster Rollup的设计,进一步探索了Rollup协处理器的想法。这些与 RISC Zero 的定义相同。

兹克VM兹克VM

c) 来自我们

综上所述,我们实际中zkCoprocessor有三种类型,分别如下:

  • 数据访问zkCoprocessor:主要将某些数据(历史区块、历史状态)馈送到某个地方(智能合约)。
  • zkVM计算zkCoprocessor:由链下zkVM计算,然后将结果反馈给链上。将O(n)计算压缩为O(1)验证。

兹克VM兹克VM

2.zkOracle的定义

a) 明天机

Hyper Oracle 在Defining zkOracle for Ethereum 中为我们提供了 Oracle 的解释。

Oracle明显总结了任何区块链空间中的“基础设施”,作为比协处理器Copocessor更好的定义。

如果基础设施的输入是链下数据并且输出是链上数据,则它是输入前面的机(例如Chainlink 价格Feed)。反之,它是一个前面的输出(例如The Graph)。如果输出前面的机在前,然后是输入前置机,则它是 I/O 前置机(例如 Gelato Network)。

兹克VM兹克VM

总之,上位机与协处理器的概念非常相似,但协处理器同时具有数据访问和计算的特点。

b) zkOracle

以Hyper Oracle为例,zkOracle和zkCoprocessor之间是什么关系?

Defining zkOracle for Ethereum 中讨论的 zkOracle 标记具有两个 zkCoprocessor 的功能。

兹克VM兹克VM

例如,Hyper Oracle 等 zkOracle:

  • 以消耗信任的方式访问历史数据。
  • 执行可以省去计算。

3、zk协处理器和zkOracle

当我们直接将两种类型的zkCoprocessor与zkOracle进行比较时,我们可以看到zkOracle同时具有zkCoprocessor的所有功能:

  • 智能合约的异步处理
  • 与L1或L2上的现有应用程序互操作并增强其功能
  • 卸载资源设定系统中的计算

通过直接比较,zkOracle是一个更精准的解决方案,可以为开发者提供更完整的技术栈。

两类zkCoprocessor在各自的垂直领域进行了扩展,例如,数据访问zkCoprocessor解锁了跨链场景,zkVM计算zkCoprocessor代表了基于zkVM的zk rollup。

4、使用zkCoprocessor或zkOracle建设

建设时选择哪一种?

按照一步一步的顺序,我们可以做出一些关于构建应用程序的决定。

a) 纯智能合约的DApp

首先,智能合约的纯Solidity实现仍然是一个非常选择。虽然纯粹的智能合约不能提供一些最好的新颖功能,但在某些场景下它们仍然足够了。此外,Arbitrum Stylus当前良好的可用性还通过纯智能合约解锁了许多新应用程序。

b) 需要更丰富的DApp数据访问

在许多情况下,开发人员可能希望使用数据访问 zkCoprocessor 或 zkOracle 进行智能合约来访问更丰富的数据源。

在这种场景下,如果单独使用数据访问 zkCoprocessor,计算仍然在智能合约中处理。zkCoprocessor 的作用是降低传统方式获取数据的复杂度,而不是让智能合约的计算能力更强。

在这个场景中,我们看到了很多与数据相关的小型项目,而不是传统相当成熟的DApp:

  • 使用zkCoprocessor Axiom:更好的LP管理、MEVictim回扣
  • 使用zkOracle Hyper Oracle:Uniswap v2价格、OpenSea交易活动、USDT交易量监控

c) 需要大量计算的DApp

通常,一些复杂的算法无法直接在链上计算,对于游戏来说,计算逻辑非常复杂,例如etherquake和GameOfLife,运行一步需要花费2000美元。或者与机器学习相关的复杂算法不可能在链上运行。因此,我们需要 zkVM zkCoprocessor 或 zkOracle 在链下运行计算,然后以 ZKP 的形式提交到链上。

在这个例子中,我们可以看到它们的一些无限的计算潜力:

  • 使用 zkCoprocessor 盆景:Zeth(在 zkVM 中证明 Reth)、zk-sentiment
  • 使用 zkOracle Hyper Oracle 或 zkWASM:zkGo(在 zkVM、Type-0 zkEVM 中证明 L2-Geth)、zkAMM

d) 全功能的下一代DApp(DeFi 3.0)

最后,我们讨论了仅使用 zkOracle 构建的应用程序。以 DeFi 应用为例,一个完整的 DeFi 是非常复杂的。下一代 DeFi 应用程序,或 DeFi 3.0 DApps,将需要:

  • 更丰富的数据访问
  • 无限制的计算
  • 自治(用于厦门、参数更新、协议治理)

我们已经讨论了zkOracle如何共享两个zkCoprocessors的功能,同时满足前两个功能要求。zkOracle如何实现自治功能,而zkCoprocessor如何不实现自治功能?

  • zkOracle:不需要人工干预。数据访问和计算任务可以以简化和自动化的方式完全定义和执行。所有链上调用都是需要信任且有效的。
  • zkCoprocessor:需要通过中继器对计算响应进行链上监控和过滤,或者添加额外的复杂机制。

zkCoprocessor 的自主性意味着什么:

  • 去中心化不足
  • 潜在复杂机制的风险
  • 开发者心理负担

因此,对于像 DeFi 这样的完整应用程序来说,zkOracle 是一个完美且充分的选择。

值得注意的是,Hooks 还可以处理 zkCoprocessor 缺失的一些功能,但仅限于 DeFi 等场景,而不是普遍适用。

Tags:

标签云

站点信息

  • 文章统计12456篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们