1
Abstract (Processed)
The transaction is executed and soft confirmation is
provided back to the user about the execution of their transaction (i.e. if their transaction succeeded or not).After execution, the sequencer both forwards the block to the prover and creates a
batch containing transactions from multiple blocks.Example batch ↗.
2
Ethereum (sending)
Multiple batches are committed to Ethereum in a
single transaction
in the form of an optimized data submission that only details the changes
in blockchain state; called a
.This step is one of the roles of the sequencer;
calling the
commitBatches
function on the L1 rollup contract and
ensuring the data availability of these batches.The batches are stored on Ethereum using blobs following the EIP-4844 standard.Example transaction ↗3
Ethereum (validating)
A ZK proof that validates the batches is generated and submitted to the
L1 rollup contract for verification by calling the contract’s
proveBatches
function.This process involves both the prover, which is responsible for
generating the ZK proof off-chain in the form of a ZK-SNARK
& submitting it to the L1 rollup contract as well as the verifier, which
is responsible for confirming the validity of the proof on-chain.Example transaction ↗4
Ethereum (executing)
Shortly after validation is complete, the state is finalized and the Merkle tree with L2 logs is saved
by calling the
executeBatches
function on the L1 rollup contract. Learn more about state commitments.Example transaction ↗