Hyper Oracle 生态最新应用 (Bonus: 未来应用构想 )
ORA
2023-09-25 11:23
订阅此专栏
收藏此文章

0. 简介

Hyper Oracle 是一种可编程的 zkOracle 协议. 我们的目标是以一种无需信任且安全的方式解锁历史数据访问和复杂计算, 以供智能合约使用.

zkOracle 是一种为智能合约提供更强计算能力的技术. 任何在其架构中使用 zkOracle 的 DApp 都是一种 zkDApp, 具有比传统 DApp 更大的潜力.

要对 zkOracle 进行编程, 你可以在 zkGraph 中编写代码 ( 一段自定义逻辑 ), 以定义自己的 “API”. 此外, 我们提供 zkGraph 标准, 包括 zkAutomation, 因此你可以将其用作模板, 为您的智能合约提供实现端到端无需信任自动化操作的能力.

自 Hyper Oracle 的 zkGraph 发布以来, 有哪些类型的 zkDApps 已经在 Hyper Oracle 上构建?

我们将 Hyper Oracle 生态系统中的最新应用程序分为三类: 简单的 zkGraph 应用、使用 zkGraph + zkAutomation 的应用, 以及使用 zkGraph + zkAutomation 的复杂 DeFi 应用.

此外, 我们还为开发者提供了一些基于 zkOracle 的项目创意.

1. 简单的 zkGraph 应用

开发者可以在开发中纯粹使用 zkGraph, 他们可以使用 zkGraph ( 由他们自己或他人开发 ) 来对现有的协议和智能合约进行二次开发.

这些 zkGraph 解锁了两项功能: 无需信任的历史数据访问与任意计算.

Hyper Oracle 的社区成员为构建 zkGraphs 做出了贡献, 我们为他们创建了一个专门的展示页面. 你可以在这里查看 zkGraph 的源代码, 以及演示用例页面.

a) USDT 每个区块的转账量

USDT 是区块链上最常用的稳定币之一. 其活动是衡量区块链网络作为去中心化金融平台的活跃程度的一个指标. 这个 zkGraph 的核心很简单: 对任何区块的 USDT 转账量进行求和.

这个示例演示了 zkOracle 的可编程性和易用性, 它只需要进行简单的计算, 就可以让智能合约访问历史数据, 并使用零知识技术进行简单的数据处理和计算.

基于这个 zkGraph, 可以构建稳定币数据仪表, 以及对历史稳定币数据和波动的直接链上监测.

你可以直接在这里访问这个 Demo.

b) Uniswap v2 价格

Uniswap v2 是区块链上最常用的自动做市商 (AMM) 之一. 由于其特殊的 AMM 机制和设计, 计算 v2 池中资产的价格需要一定的计算量. 这个 zkGraph 的核心计算包括获取 Uniswap v2 池中的代币对数量, 通过除法计算资产的价格, 最后确定价格是否超过了某个阈值.

这个示例进一步展示了 zkOracle 的可编程性, 涉及更多的操作. 同时, 使用了特殊的 Solidity 语法, 如 ‘require()’, 展示了 zkGraph 的易用性.

基于这个 zkGraph, 开发者可以在任何时间检索和追踪 Uniswap 上的资产价格, 以构建 DeFi 应用程序.

你可以直接在这里访问这个 Demo.

c) OpenSea 交易活动

OpenSea 拥有 SeaPort 这个链上 NFT 交易协议, 承载了以太坊上大部分的 NFT 交易活动. 由于其复杂的技术架构, 这个 zkGraph 在解析数据和计算每个区块上的 SeaPort 交易活动时执行复杂的计算, 包括交易数量和交易价值.

这个示例通过为 SeaPort 合约编写一个简单的解析器来演示了 zkGraph 的可扩展性, 强调了 zkOracle 的可编程性. 对于 zkGraph 的开发, 你可以使用 npm 上可用的任何库, 非常灵活. 你不需要担心任何零知识的知识, 只需编写代码, 而不是电路.

基于这个 zkGraph, 开发者可以查询任何链上 NFT 交易活动和交易量, 然后评估 NFT 市场并构建与 NFT 相关的应用程序.

你可以直接在这里访问这个演示.

d) 构建你的 zkGraph

要构建类似的 zkGraph 应用程序, 你可以参考以下资源:

2. 使用 zkGraph + zkAutomation 的 zkDApp

a) 简介: 使用 zkAutomation 的 zkDApp

我们在上面的示例中重点介绍了 zkGraph 作为主要组件的小项目, 但要构建完整的 zkDApp, 我们可以同时利用 zkGraph 和 zkAutomation.

回顾一下 zkDApp 的概念: zkDApp = zkOracle + DApp. 我们自己构建智能合约, 然后使用 zkAutomation 为智能合约添加自动化能力.

我们已经制作了一个关于 zkAutomation 驱动的 zkDApp 开发流程的视频教程: https://www.youtube.com/watch?v=VbhoQnu5_Kg.

b) 通过 zkAutomation 构建 zkDApp

使用 zkAutomation 开发 zkDApp 与前面章节中的 zkGraph 应用程序的开发过程的区别在于, zkDApp 需要:

  • 最好基于你自己开发的智能合约 ( 以确保开发和测试过程更加顺畅 )
  • 设置 zkGraph 的返回值 (payload) ( 以确保发送正确的数据并触发正确的链上函数 )

我们将使用视频教程里的示例更详细地解释 “设置有效负载值” 的步骤.

zkGraph 返回的值通常是某种类型的数据, 对于使用 zkAutomation 的 zkGraphs, 返回值可以用于定义最终触发的链上智能合约. 该过程如下:

  1. 在 zkGraph 的 zkgraph.yaml 中, 将 dataDestination 设置为要触发的智能合约.
  2. 为最终的返回设置有效负载. 例如, 如果您想触发 run() 函数, 则返回该函数的签名 (c0406226), 可以在 signature database 中计算或确认该签名.
  3. 在运行期间, 如果 zkGraph 运行到最后的返回操作, 那么它将触发链上交易. 例如: https://sepolia.etherscan.io/tx/0x4f0c30fa489989d679acefa9fdaf7022d4a12c35eab9494a3b4eceb44006d8af

基于这些额外的操作, 你可以使用 zkAutomation 实现任何具备无需信任的自动化功能的 zkDApp.

3. zkAMM

完全由 zkOracle 构建的完整 DeFi 应用程序会是什么样子呢?

在新加坡举办的 HackZuzalu 期间, 一个 AMM 项目完全通过 zkOracle 实现了核心逻辑: zkAMM.

a) zkAMM 简介

AMM ( 例如 Uniswap v2) 的概念和核心逻辑其实是很简单的:

  • 一个池子, 其中包括代币 A 和代币 B
  • 计算池中代币 A 和代币 B 的流动性和交换价格

通常, 这种逻辑可以直接在智能合约中实现. 当在 zkOracle 中实现时, 逻辑和计算可以无限扩展, 因为任何复杂性的计算最终都成为 O(1) 的链上验证 ZKP, 从而极大增加了计算潜力.

通过 zkOracle 部署核心 AMM 逻辑的 zkAMM 的关键优势包括:

  • 仍然保证了无需信任的特性
  • 高度可扩展和可扩展的性能 ( 扩展到 Uniswap v3 甚至 UniswapX)
  • 更高的计算灵活性, 不受 Solidity 或 EVM 的限制

b) zkAMM 架构

整个 zkAMM 的工作流程和结构如下:

复杂的计算和核心逻辑由 zkAMM 的 zkGraph 实现. 以下是该 zkGraph 的一些主要功能:

相应的链上智能合约为关键功能提供回调, 并执行 zk 证明验证和其他验证.

c) 其他 zkAMM 实现

除了通过 Hyper Oracle 的 zkOracle 实现的 zkAMM 之外, 我们还看到了使用其他技术实现的 zkUniswap, 基于相同的概念.

一些关键区别包括:

  • zkAMM 实现了 Uniswap v2, zkUniswap 实现了 Uniswap v3.
  • zkAMM 使用 AssemblyScript, zkUniswap 使用 Rust.
  • zkAMM 是完全自动化的, zkUniswap 需要额外的触发器或人工干预.
  • zkAMM 具有由 zkOracle 提供的无需信任的历史数据访问, 而 zkUniswap 需要额外的组件来支持这一功能.

4. Request to Build

现在你可以构建自己的 zkGraph 应用程序或 zkDApp. 我们提出了一些实验性的想法, 用于构建三个复杂级别的应用程序.

当然, 我们也想听听你还能想到什么其他可能性!

a) 纯 zkGraph

与上一节中的 “使用 zkGraph 的简单应用” 一样, 我们可以纯粹为现有协议构建一个 zkGraph 作为智能合约的扩展而存在.

  • 针对 NFT 交易平台的 zkGraphs

在我们之前的示例中, Hyper Oracle 生态系统的开发者已经为 OpenSea 的 SeaPort 开发了一个 zkGraph, 用于计算 NFT 的交易量.

以太坊上有许多不同的链上 NFT 交易平台. 通过对这些协议和开发的研究, 你可以为以下平台构建类似的 zkGraph:

  • Blur
  • Looksrare
  • CryptoPunks
  • Memswap ( 基于意图的架构!)

我们认为, 这些 zkGraph 可以一起用于计算链上 NFT 的数据, 每个 zkGraph 将根据 NFT 交易协议的设计具有自己的特点 ( 以交易为重点、以创作者版税为重点等 ).

  • 通过 zkGraph 实现链上 DefiLlama

对于 DeFi 协议来说, 计算协议的净流入和净流出以及总锁定价值 (TVL) 非常重要, 其历史数据可供分析, 这对于风险管理和风险参数更新非常有用.

为了构建一个链上的 DefiLlama, 开发者可以使用 zkGraph 来分析不同 DeFi 协议在不同方向上的风险:

  1. AAVE、Compound、Morpho 等的 zkGraph.
  2. 执行关于协议流入和流出、TVL、协议收入 ( 类似于cryptofee)、协议健康比率 ( 类似于 bad debt dashboard)、用户的协议收益等的计算.
  • 通过 zkGraph 实现链上 L2BEAT

目前在以太坊上有 30 多个 Layer2 解决方案. 这些 L2 Rollups 基本上在 L1 上结算, 因此可以通过 zkGraph 直接访问和检索这些 L2 Rollups 的操作.

因此, 开发者可以使用 zkGraph 构建一个链上的 L2BEAT:

  • 计算 L2 的 TVL (Canonical, External, Native)
  • 计算 L2 的每秒交易数 ( 通过在 L1 上结算的 L2 区块 )

这些信息可以通过 zkGraph 的帮助直接在链上计算和汇总, 以指导用户选择适合他们的 L2 解决方案.

  • 针对 ERC 的 zkGraphs

ERC 协议允许以标准化形式实现智能合约, 因此开发者也可以基于这些标准化智能合约来实现可重复使用的 zkGraphs.

最常用的 zkGraphs 可能是针对 ERC-20 ( 也可能包括奇怪的 ERC-20) 和 ERC-721 的.

zkGraphs 也可以用于 ERC-6150ERC-7007 (Bonus: 因为这两个 ERC 由 Hyper Oracle 作为联合作者编写 ).

b) 作为链上 API 的 zkGraph

Hyper Oracle 的 zkOracle 与 Chainlink 的 Oracle 之间的主要区别之一是 zkOracle 是完全可编程的. 开发者可以构建自己的 “API”, 而不必等待 Oracle 提供者来设置它, 其他用户或开发者也可以使用这个 API.

要使用可编程 zkOracle 构建这样的链上 API, 你需要在 zkGraph 中编写一些算法逻辑, 并使用 zkAutomation 将结果返回给链上智能合约, 以便用户可以直接在链上使用它.

  • 链上价格 Oracle 的 zkGraph (TWAP、TWMP 等 )

在 AMMs 和 DEXs 中, 有许多需要额外计算的金融基础设施, 如 TWAP. 开发者可以通过 zkGraph 来实现一组 TWAP, 甚至是 TWMP, 以获得任何协议的通用链上价格 Oracle.

或者甚至使用统计方法生成资产 ( 如 ETH) 的估计价格, 除了转账交易之外不需要其他外部信息, 就像 UTXOracle.

  • 实现 Uniswap Hook 的 zkGraph

zkOracle 可以通过可编程 zkGraph 完全实现任何逻辑. 当今最热门的计算范式是 Uniswap v4 提出的 Hooks.

开发者可以使用 zkGraph 以不同的方式来实现任何 Hook 逻辑. 我们已经为你创建了一个 awesome-uniswap-hooks 的 Hook 列表, 你可以尝试使用 zkGraph 实现它们的计算逻辑, 并使用 zkAutomation 完成整个循环!

  • 作为库的 zkGraph

传统智能合约中有许多库和标准, 对于合约的完整实现起着重要作用. 你可以使用 zkGraph 来实现它们, 以实现更高效的 ZK 计算.

  1. SHA256 ( 例如 SHA256.sol )、STARK 验证器 ( 例如 stark-verifier)、Nova 验证器 ( 例如solidity-verifier)、P256 验证器 ( 例如 p256-verifier) 和其他加密或 zk 库
  2. Solidity 标准库 ( 例如 solidity-standard-librarysolidity-stringutilssolregex)
  3. 实验性想法 ( 例如诸如 zeremn-per-epoch 的 circuit breaker; 酷炫的算法如 zk-pref-matchingzk-sentiment, 甚至是 AI 算法; 甚至使用 AssemblyScript 或 JavaScript 中的现有 FHE 库 ( 如果有的话 ), 类似于 zk-tfhe 或 zkFHE)
  • 提供传统 Oracle 服务的 zkGraph

在传统的 Oracle 服务中, 有许多其他常用的小型 API, 可以使用 zkGraph + zkAutomation 来实现:

  • VRF ( 可验证随机函数, 可能类似于zk-draw)
  • VDF ( 可验证延迟函数 )
  • FSS ( 公平排序服务 )

c) 完备的 zkDApp

当然, 你也可以使用 zkOracle 实现全新的完整应用程序, 就像 zkAMM.

你可以利用 zkGraph 的强大计算能力和无需信任性来构建 zkDApps:

  • 自动化 zkDApps: ENS 的自动续期、DeFi 协议的自动策略、链上清算机器人 Keeper…
  • DeFi3 zkDApps: 我们有 Uniswap v2 的 zk 版本, 那么 AAVE、Curve、Uniswap v3、v4 或全新的协议呢?
  • 实验性游戏: 对于游戏来说, 计算逻辑非常复杂, 因此使用 zkGraph 来实现可以节省大部分链上气体消耗, 例如 etherquakeGameOfLife, 每一步运行成本都要 2,000 美元.
  • ZK-AIGC 代币 zkDApp: 基于 EIP-7007 构建 zkDApps. 现有示例: ZenetikNFT.

5. 结语

无论是简单的 zkGraph 应用程序、具有 zkAutomation 功能的 zkDApp, 还是像 zkAMM 这样的完整应用程序, 你都可以使用 zkOracle 来增强你的智能合约和应用程序:

  • 更复杂的计算能力, 可以在链上验证
  • 访问更多历史数据或多个数据源
  • 能够执行复杂的自动化计算

我们在这里展示的最新应用程序只是生态的冰山一角. 请继续关注未来更多有趣的应用程序!

通过 TwitterDiscord 与我们互动. 一起来构建吧!

关于 Hyper Oracle

Hyper Oracle 正在构建一个可编程的 zkOracle 协议, 用于使 dApps 去中心化与更加安全. zkOracles 为智能合约提供了任意计算、无需信任的自动化和丰富的数据源. Hyper Oracle 将零知识技术的复杂性抽象化, 并提供了创建下一代 dApps 的最简单、最开发者友好的方式.

hyperoracle.io | x.com/hyperoracle | github.com/hyperoracle

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

ORA
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开