msfew

Posted on Jul 11, 2023Read on Mirror.xyz

HyperOracle, Simply Explained

0. Preface

We cover HyperOracle (Hyper Oracle) in great detail in our whitepaper. However, it may still be difficult for Ethereum smart contract users or developers to understand due to the technical jargon and infrastructure and architecture content.

Therefore, this post aims to help smart contract developers and users understand HyperOracle's technology, network, and features by comparing it with the Ethereum network.

We will describe core concepts using the most abbreviated terms. For more specific information, please refer to the links provided in the article.

1. HyperOracle Protocol Structure

a) HyperOracle Protocol

Programmable zkOracle Protocol

From a high-level point of view, we can view the HyperOracle network as similar to the Ethereum network in a sense that we are both decentralized networks, autonomous communities, and open ecosystems.

HyperOracle is not a SaaS company nor do we offer closed-source software. Anyone can operate nodes on these networks, perform computations, and participate in them.

HyperOracle offers an onchain oracle protocol (zkOracle protocol) that handles arbitrary computations for blockchain smart contracts. Meanwhile, Ethereum provides a blockchain smart contract network.

b) zkOracle

zkOracle Node in HyperOracle Network

In the HyperOracle network, there are multiple zkOracle nodes. To understand zkOracle better in the context of Ethereum, let's refer to the specification and definition provided in this article.

Simply put, zkOracle can be described as a node, similar to Ethereum node, that carries out computations but also produces zero-knowledge proofs.

2. HyperOracle Technology

a) zkPoS for data provenance

Data Source of zkOracle

For a zkOracle node, the first question is how to get the data source for all the data. HyperOracle draws data source from the Ethereum blockchain.

HyperOracle zkPoS provides trustless access to the Ethereum blockchain as source data, by proving the whole Ethereum consensus. In a similar way, you can think of zkPoS as the core root data of the HyperOracle network.

You can see more information about zkPoS here.

b) zkGraph for programmability

“Smart Contract” of HyperOracle Network, Run in zkOracle

After obtaining the Ethereum source data through zkPoS, zkGraph acts as a "smart contract" like program to define the custom computation of the source data, but with higher degree of flexibility and boundless computation power. Think of zkGraph as acting like a smart contract on Ethereum.

If zkOracle is a CD player, zkGraph is one of the different CDs. Also, a zkOracle can decide how many zkGraphs it wants to run, either in terms of number or in terms of specific types.

On Ethereum, the runtime environment for smart contracts is EVM (for computation); on ZK Rollup, it is zkEVM (for computation and zero-knowledge proof generation); and on HyperOracle, the runtime environment for zkGraph is zkWASM (for computation and zero-knowledge proof generation).

zkGraph will be written in AssemblyScript (which is basically the same syntax as JavaScript). The concept of zkGraph is inspired by The Graph's Subgraph, which can be easily ported to zkGraph as it is Subgraph-equivalent.

3. HyperOracle Application

Concept: zkGraph Standard (Meta Apps)

zkGraph can be understood as a smart contract on Ethereum. These programs can be any kind of computation. Therefore we need a standard to define their interfaces and computation behaviors.

In Ethereum's smart contracts, they can follow the ERC standard to achieve a standardized format for better adoption. A similar standard exists for zkGraph, called Meta Apps or zkGraph Standard.

Like the ERC standard, developers can choose not to adopt the ERC-20 and ERC-721 standards to implement their own smart contracts, but can make it difficult to access other applications to create a network effect. The same is true for zkGraph, and implementing zkGraph under the zkGraph Standard can make the most of zkGraph.

We currently have the following different zkGraph Standards: zkAutomation, zkIndexing, and zkML (zkMLinference).

zkGraph can unlock a lot of features that Solidity smart contracts cannot.

Advantages of zkGraph:

  • No limit for calculations limited by gas

  • Data such as event data or block data can be fetched verifiably in zkGraph

  • Potential cross-chain ability by verifying zkGraph’s zk proof on different network

  • More complex mathematical calculations in WebAssembly (floating point operations, processing of array and big numbers)

  • Automated operations can be performed (zkAutomation)

  • Complex models can be run in zkGraph (zkMLinference)

  • Historical data can be retrieved directly and trustlessly (zkIndexing)

a) zkGraph Standard: zkAutomation

Since Ethereum smart contracts do not have automation, zkAutomation is an automated computation zkGraph that extends the computational power of on-chain smart contracts while making automated calls.

The workflow of zkAutomation is

  1. Read (Read on-chain data with zkPoS)

  2. Compute (Compute and check if automation triggered with zkGraph)

  3. Verify (Verify with on-chain verifier contract)

  4. Write (Write values into smart contract defined by zkGraph)

Users of zkAutomation can build a variety of innovative fully on-chain DeFi applications or keeper.

Use cases of zkAutomation:

  • Fully onchain fund

  • Fully onchain stable coin

  • Keeper for DeFi protocol (liquidation, or risk parameter update)

  • Automated strategy for GameFi

  • Automated treasury management for DAO

  • ……

b) zkGraph Standard: zkML (zkMLinference)

Since Ethereum smart contracts do not have a way to perform on-chain machine learning inference computation, we need zkML to perform highly complex machine learning calculations off-chain, thus making smart contracts machine learning capable.

The workflow of zkML is

  1. Read (Read on-chain data with zkPoS)

  2. Compute (Compute for inference with zkGraph)

  3. Verify (Verify with on-chain verifier contract)

  4. Write (Write inference output into smart contract defined by zkGraph)

Users of zkML can build completely new fully on-chain decentralized applications powered by machine learning.

Use case of zkML:

  • Fully onchain AIGC (EIP-7007: zkML AIGC-NFTs, co-authored by HyperOracle)

  • Fully onchain ML quant fund

  • Verifiable ML model inference

  • ……

c) zkGraph Standard: zkIndexing

Since Ethereum smart contracts do not have a way to store all data on-chain efficiently and inexpensively, an off-chain indexing scheme like zkIndexing is needed to index the data of smart contracts.

The workflow of zkIndexing is

  1. Read (Read on-chain data with zkPoS)

  2. Compute (Compute and index with zkGraph)

  3. Verify (Verify with client-side verifier)

Users of zkIndexing can build fully trustless and decentralized applications.

Use case of zkIndexing:

  • Decentralized front end for DeFi

  • Verifiable data dashboard

  • Trustless historical data access for every decentralized application

  • ……

d) Other Standard

Bounty Contract

To commit zkGraphs on chain, developers and users need to both deploy and "top up" bounties in a smart contract on the Ethereum network.

The point of a bounty is to create a funding pool for paying zkGraph compute tasks by broadcasting it on Ethereum. The nodes in the HyperOracle network run different zkGraph and generate proofs that can collect those bounties and token rewards.

Similar designs may be: Bounty by Keep3r Network, Curating by The Graph, and Proof Market by nil.

4. HyperOracle Ecosystem

Just like Ethereum and other blockchain networks, HyperOracle, as a programmable network, flourishes with a growing ecosystem of network-based applications.

Such ecosystem is driven by three key actors: application, developer, and node operator.

a) Application Ecosystem

Any application can permissionlessly join the HyperOracle network by building with HyperOracle's zkGraph or zkGraph Standard.

Decentralized applications can use HyperOracle as a key component.

  • Use zkAutomation to build end-to-end decentralized DeFi

  • Use zkMLinference to build the next generation of on-chain applications powered by machine learning

  • Use zkIndexing to build trustless application front-ends

We are currently working with builders on several DeFi and zkML applications, and HyperOracle will continue to support projects in the ecosystem in the future.

b) Developer Ecosystem

Whether in Ethereum or HyperOracle, developers can contribute to the ecosystem without creating a new application. There are other ways of open contribution, for example:

  • Write open source code

  • Building new development tools and libraries

  • Propose a new application standard (e.g. EIP)

  • Propose and govern the network itself

More specifically, developers can contribute to HyperOracle in the following ways.

  • Writing open source zkGraphs or migrating Subgraphs

  • Building a zkGraph-related development ecosystem

  • Proposing new zkGraph Standards or other standards

  • Contributing open source to HyperOracle Node or other HyperOracle network architectures

  • Creating tutorials and videos to enrich the developer experience

HyperOracle believes that the success of an open network is thrived on the contributions of its community members.

c) Node Operator Ecosystem

HyperOracle is a public network, and as such values the number of nodes run by different entities, just like Ethereum.

HyperOracle foresees the same challenges as Ethereum at the node operation and network level.

  • Incentive Design

  • Client Diversity

  • Node Operator

These topics will be discussed and improved upon between HyperOracle Foundation and the decentralized node collective before they are implemented.


Follow us on Twitter and join our Discord to stay up to date with HyperOracle. Learn more about HyperOracle on our website.