Defining zkOracle for Ethereum

Strange choice of word to call that an oracle instead of a coprocessor.
Interesting ideas tho.

If I understand correctly, the idea of the Output zkOracle is to attach proof of correct source and computation when a user retrieves blockchain data. The verifier would need to obtain a trusted block hash from which to start the verification, so it’s similar to running a light client, right ? Are there any tradeoff here with traditional zk light clients like Plumo in terms of proving time/proof size ?

I know Axiom v2 is also using Halo2, any tradeoffs or differences in designs or goals here ?

For the difference between zkOracle and zkCoprocessor, you can check out this post by 7x: zkOracle and zkCoprocessor — SevenX Ventures. TLDR is you can think of a zkOracle as a zkCoprocessor, but zkOracle is a broader concept (because you wouldn’t call Chainlink a coprocessor, and Chainlink, just like zkOracle, has input, output, and I/O oracles).

Yes, it’s similar to running a light client. We don’t have a benchmark against Plumo right now.

Some of the difference in terms of model and features are explained in the zkOracle and zkCoprocessor post. One key difference between Axiom and HyperOracle zkOracle is that Axiom has their Halo2 circuit, then developers use Axiom eDSL to call those circuit APIs, and zkOracle is built on zkWASM and all computation (historical data access, and the “eDSL calling those circuit APIs” part) is secured by a zkp.

Verifier will be a universal smart contract on Ethereum or other networks.

Prover network will be a decentralized and permissionless network of zkOracle nodes.

Thank you for the detailed overview! If I understand correctly, the ZK part of the Oracle relates to its publishing. Could you please elaborate on your approach to data aggregation or consensus?

This is awesome. I think you did a great job hear identifying a real problem in the lack of a clear definition for zkOracle. It is so important to have clear definitions for new technologies in the space.

Overall, great job with the post in general. It is super clear and I really like the charts and models. Specifically. I think the Oracle model rocks because it is so simple and easy to understand, it follows the principle of parsimony well.

The questions I have are about the actual computation. You have the computations as Output = Input + 42. How did you come to that computation? Where did 42 come from?

zkOracle doesn’t have its own consensus like Chainlink’s. All computation validity is from the generated cryptographic proof, similar to ZK Rollup in some senses.

The formula is only for showcasing the “computation” part.

The “42” is actually just a special number. It doesn’t mean anything formal, and it is just a representation of the computation.