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:
- The input data was faithfully read from the blockchain (via Merkle inclusion proofs)
- 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
- Axiom Documentation — Developer docs for the Axiom ZK coprocessor on Ethereum.
- Brevis Documentation — Technical docs for the Brevis ZK coprocessor.
- Axiom Blog — ZK Coprocessors Explained — Architecture and use case deep-dives.
- RISC Zero Steel — RISC Zero’s Ethereum-compatible ZK coprocessor layer.
Last updated: 2026-04