All transaction batches are assumed to be valid unless challenged with a fraud proof during the challenge period (e.g., 7 days). Transactions have instant confirmation with withheld finality.
The user submits a transaction to an L2 Node.
The transaction is forwarded to the L2 Sequencer who executes the transactions, aggregates to produce batches, computes the new state root and submits to the L1.
The transaction batch is submitted to the L1 Bridge Contract. The L1 Bridge Contract publishes the batch on the L1 and the status is updated to “submitted”.
The Challenger will recompute a new state root and scrutinize the transaction blocks.
If the transaction block is challenged: the L1 Arbitrator Contract is run and parties may be rewarded or punished as a result. If a transaction is found to be indeed fraudulent: the entire batch of fraudulent transactions will be rolled back and the fraudster will be slashed. The status is updated to “invalid”.
If the transaction block is not challenged: the transaction batches are considered to be correctly computed. After the challenge period, the batch is validated and actions such as withdrawals are allowed. The status is updated to “valid”.