We can view finality in ZK-Rollups as a spectrum. Each level takes more time but has better finality assurances.
1. Single sequencer accepts a tx —> Immediate confirmation. Can be trusted or have economic guarantee (single sequencer can issue soft commitments to user ensuring it’ll get slashed if it doesn’t include tx on L1)
2. L2 consensus (optional) —> A quorum of L2 sequencers sign on L2 blocks. We have 2/3 stake of L2 behind our tx. If equivocation (double signing) happens, evidence of it can be posted on L1 to slash the quorum.
3. L2 consensus checkpoints to L1 —> This is not a proof but it ensures L1 that the next proof to be posted must include the checkpointed block. At this point, anyone (with data behind the checkpointed block) can be allowed to post a proof.
4. Proof posted on L1 —> we’r waiting for L1 finality…
5. L1 block containing the proof gets finalized —> We have the full security of L1 behind our tx!