Technical Details
Proof Generation and Verification
The ZK coprocessor generates and verifies proofs through several key components:
Proof Data Generation
The get_proof_data functionality is central to the protocol's cross-chain operations:
Guest Program
Executes inside the RISC Zero zkVM
Verifies cross-chain state through zero-knowledge proofs
Validates user positions and market states across chains
Generates cryptographic proofs of state verification
Handles view calls to market contracts for state verification
Chain-Specific Verification
Each supported chain has specialized verification mechanisms:
Ethereum (L1)
Light client verification through beacon chain
Proof state via OPstack L1 reads
Optimism/Base (OpStack)
Sequencer commitment verification
Dispute game validation
L1 block inclusion proofs
Linea
Sequencer commitment verification
L1 block inclusion proofs
Self-Sequencing
While the Sequencer Infrastructure handles proof generation and submission for most users, the protocol maintains censorship resistance through self-sequencing capabilities. Users can generate and submit their own proofs if:
The Sequencer is unavailable
The Sequencer attempts to censor transactions
Users prefer to handle their own proof generation
Additional security guarantees are required
Self-Sequencing GuideTo generate proofs independently:
Setup
Environment Configuration Create a
.envfile with required RPC endpoints:
Proof Generation Use the Malda SDK to generate proofs:
Transaction Preparation Extract the required data for on-chain submission:
Note: For self-sequencing, l1_inclusion must be set to true to ensure additional security guarantees against potential reorg exploits.
Last updated
