ZK Coprocessor

Definition:

A ZK coprocessor is an off-chain compute layer that reads historical on-chain state (past blocks, transactions, receipts, storage slots), executes arbitrary computation over that data, and returns a ZK proof to a smart contract proving the computation was performed correctly — making it possible for DApps to consume verifiable historical blockchain facts without trusting a third party or replaying computation on-chain. This pattern dramatically expands what smart contracts can do: instead of only seeing current state, they can now securely reference past events, compute statistics over historical data, or issue credentials based on on-chain history.


The Problem ZK Coprocessors Solve

EVM smart contracts face a key limitation: they can only access current state. Reading historical data is expensive or impossible:

  • “What was the average price of ETH over the last 30 days?” — not accessible in a single on-chain call
  • “Did this address hold 10 ETH for at least 6 months?” — requires replaying historical blocks
  • “What was address X’s on-chain credit score based on past transactions?” — computationally infeasible on-chain

Traditional solutions require trusting an oracle. ZK coprocessors replace trust with cryptographic proof.


How ZK Coprocessors Work

Step 1 — Data Access

The coprocessor reads historical on-chain data: block headers, state tries, transaction receipts, event logs, storage slots. All Ethereum data is committed in Merkle tries, so any piece of historical data can be Merkle-proven against a known block hash.

Step 2 — Off-chain Computation

The coprocessor executes arbitrary computation over the proven data — statistics, rankings, averages, counts, existence checks.

Step 3 — ZK Proof Generation

A ZK circuit proves:

  1. The input data was faithfully read from the blockchain (via Merkle inclusion proofs)
  2. The computation was performed correctly

Step 4 — On-chain Verification

The ZK proof is submitted to a smart contract. The contract verifies the proof (cheap — a few hundred thousand gas), then acts on the result: minting a token, gating access, or updating a parameter.


Major ZK Coprocessors

Axiom:

  • Built on Halo2 ZK circuits
  • Reads Ethereum block headers, account state, storage slots, transaction receipts
  • Query language: AXIOMv2 uses configurable compute (ZK circuits + Rust)
  • Used for: historical DeFi analytics, credit scoring, airdrop eligibility proofs
  • Mainnet on Ethereum

Brevis:

  • ZK coprocessor by Brevis (formerly Celer’s ZK team)
  • Supports querying across multiple chains
  • Uses SDK-defined computation — developers write recSNARK circuits
  • Used by: Uniswap (volume-based fee tiers), Sushi, other DeFi for historical query-gated features

RISC Zero Steel (coprocessor mode):

  • RISC Zero’s zkVM can serve as a coprocessor — prove Rust programs that read Ethereum state via a provable EVM view call interface called Steel
  • General-purpose vs. Axiom/Brevis which are more structured

Use Cases

Use Case How ZK Coprocessor Enables It
Fee tier based on trading volume Prove cumulative volume over 90 days → adjust fee in DEX contract
Undercollateralized lending Prove 12 months of repayment history on-chain → better loan terms
Airdrop eligibility Prove address held X token for Y days without replay
Sybil resistance Prove account age > 2 years and made > N transactions
On-chain credit score Aggregate historical repayments, liquidations, collateral ratios
NFT provenance Prove an NFT was held by a specific address for a specific duration

Trust Assumptions

ZK Coprocessor Trust Assumption
Data correctness Merkle proofs against Ethereum block hashes (trustless if block hash is canonical)
Computation ZK proof (trustless)
Block hash availability Ethereum’s on-chain block hash history is limited to 256 blocks; older blocks require an additional oracle (e.g., Axiom’s historic block hash accumulator)

The main remaining trust assumption is ensuring the block hashes used as roots are canonical Ethereum hashes — which is provable or provided by Ethereum’s EIP-4788 (beacon block roots in EVM) for recent blocks.


Comparison to Standard Oracles

Feature Oracle (e.g. Chainlink) ZK Coprocessor
Data source Off-chain APIs, external feeds Historical blockchain state
Trust model Decentralized oracle network ZK proof
Computation Reported result only Arbitrary computation provable
Historical access Limited Unlimited (with proof)

Related Terms


Sources

Last updated: 2026-04