pub fn verify_segments<SC, E>(
engine: &E,
vk: &MultiStarkVerifyingKey<SC>,
proofs: &[Proof<SC>],
) -> Result<VerifiedExecutionPayload<Val<SC>>, VmVerificationError>where
SC: StarkGenericConfig,
E: StarkEngine<SC>,
Val<SC>: PrimeField32,
Com<SC>: AsRef<[Val<SC>; 8]>,
Expand description
Verify segment proofs with boundary condition checks for continuation between segments.
Assumption:
vk
is a valid verifying key of a VM circuit.
Returns:
- The commitment to the VmCommittedExe extracted from
proofs
. It is the responsibility of the caller to check that the returned commitment matches the VM executable that the VM was supposed to execute. - The Merkle root of the final memory state.
§Note
This function does not extract or verify any user public values from the final memory state. This verification requires an additional Merkle proof with respect to the Merkle root of the final memory state.