L2: hardcode zkvms verification keys in the OnChainProposer
contract to take as reference for the verify
function
#2195
Labels
L2
Rollup client
Currently we take the verification keys (also called "image id", "program vkey", "riscv key" depending on the zkvm) as parameters for the verification function on this contract, and not check them at all. This means that any valid zkvm proof of any program (including an empty program) can make the
verify()
function succeed.The verification key is unique for every provable program; it summarizes a circuit. Our verifier is only interested in verifying the block execution program of each zkvm. We should hardcode the verification keys for our programs and check that the verification key taken as parameter equals the hardcoded one, this way the contract makes sure that it's verifying block execution proofs coming from the prover client and nothing else.
The text was updated successfully, but these errors were encountered: