Verifying Cairo proofs
Verifying a SHARP Cairo proof on the Starkex contracts is done in a number of transactions:
- 3 Verify Merkle transactions to verify Merkle paths (example)
- 8 Verify FRI transactions to verify the FRI proofs (example)
- A bunch of Register Continuous Memory Page transactions (example)
- A single Verify Proof and Register (example)
The reason the verification of a proof is split in multiple transactions is because proofs are too large, and the verification cost too much gas, to fit in a single transaction.
Note: Proofs can be split using stark-evm-adapter
Layouts
Different layouts are deployed on SHARP:
https://github.com/starkware-libs/starkex-contracts/tree/aecf37f2278b2df233edd13b686d0aa9462ada02/evm-verifier/solidity/contracts/cpu