Proving MXC Blocks
The purpose of proving blocks is to allow bridges to withdraw state out of the rollup.
To rely on some state that happened inside of the rollup, a bridge will want a proof that everything was done correctly. On MXC zkEVM you can run a Supernode as a prover and prove blocks, permissionlessly.
This means that you can examine the proposed blocks on the MXCzkL1 contract, and generate proofs for them. Currently, any prover can create proofs for proposed blocks. This means that the number of "fork choices" has no upper bound, because we don't know what is the correct state transition yet.
Only first prover with a valid proof of the correct fork choice (state transition) will receive the reward of MXC.
There are three states that a block can be in on MXC zkEVM:
For the visual learners here is a visualization of the three stages (proposed -> proved -> verified)