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.
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.
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.
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.
“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.
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)
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
Read (Read on-chain data with zkPoS)
Compute (Compute and check if automation triggered with zkGraph)
Verify (Verify with on-chain verifier contract)
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
……
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
Read (Read on-chain data with zkPoS)
Compute (Compute for inference with zkGraph)
Verify (Verify with on-chain verifier contract)
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
……
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
Read (Read on-chain data with zkPoS)
Compute (Compute and index with zkGraph)
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
……
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.
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.
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.
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.
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.