Mandatory 1-of-1 proofs: verifying with a single proof instead of re-execution

Strawmap K* (2029) · mandatory 1-of-1 proofs

Every block must carry a proof that its execution result is correct (a zkEVM proof), and validators change to checking only that single proof instead of re-executing transactions.

Why it is needed

Today, when an Ethereum validator receives a block, it re-executes every transaction in it to check that the result is correct. Because every node repeats the same computation, making blocks larger makes it hard for individually operated nodes to keep up. This is why the block size (gas limit) cannot easily be raised. Proofs work differently. One prover executes the block and produces a short proof that the result is correct, and the other nodes check only that proof. Checking is much lighter than re-execution. The Foundation roadmap divides this transition into stages. At first only validators who choose to do so check proofs. Next, to guard against a flaw in a single proof system, multiple proofs produced by different proof systems are required together (k-of-n). This item is the final stage. Once the proof systems are judged mature enough, a block is accepted on the strength of a single proof, and a block without a proof is an invalid block. Because validators drop execution entirely, blocks can be made much larger, and this fits with changes that make nodes lighter, such as decentralized state in the same column. K* is only the slot the Strawmap anticipated, not a confirmed fork.

How it works

  1. A prover executes the block and produces a proof The block producer executes the transactions and then publishes a short proof that the execution result follows the rules. Producing the proof takes heavy computation, but it is done in only one place.
  2. Validators check only the proof A validator that receives the block does not re-execute the transactions. It only checks that the attached single proof is valid, and accepts the block if it is.
  3. Without a proof, it is not a block Because the proof becomes part of block validity, the network rejects a block whose proof is missing or wrong. Unlike the earlier stage that required multiple proofs, a single proof is enough.

← Roadmap