Tier-2 Finality
Last updated
Last updated
In most rollups, after 1-3 minutes, the sequencer batches the transactions processed so far and pushes them to the underlying Layer 1 using calldata which essentially stays as on chain storage but is not part of the global account state of Layer 1 and hence cannot be accessed by other contracts. The Layer 2 transaction now has the same finality as the Layer 1 block that included it in a batch, and this is referred to as “hard finality”.
In addition to the transaction data, the sequencer also submits old (state prior to the batched transactions) and new (state after the batched transactions are executed) state roots, which are necessary to prove the correctness of state changes.
Once the sequencer submits the batch, the contract verifies that the pre-state root matches the existing state root. If the two match, the contract discards the old state root and stores the new state root proposed by the sequencer.
Note that at the stage, Layer 1 has all the transactions that the sequencer claims to produce the new state root. However, there is no guarantee that the sequencer's claim and its commitments on the state root are correct. This is exactly why optimistic rollups have a withdrawal period to allow anyone to contest the claims made by the sequencer.
AltLayer improves upon this in two ways. First, as the sequencing network is decentralized and the sequencers run a consensus protocol, it is unlikely that the sequencing network will generate invalid or incorrect state roots.
Second, and more importantly the sequencers rely on the Beacon Layer validators to verify the validity of the state transition via something called proof of validity. Beacon Layer acts as an intermediate network to keep the sequencers accountable via a proof of validity.
Proof of Validity: A rollup’s state is stored in a Merkle tree. For example, a key could be an account ID and a value could be the number of tokens it controls.
In AltLayer, the rollup network generates a proof of valid state transition called proof of validity that allows the Beacon Layer validators to verify a state transition for a rollup without having access to the entire state. In fact, they only need:
The block (list of state transitions),
The values in the state database that the block modifies, and
The hashes of the unaffected points in the Merkle tree.
With these, the Beacon Layer validators can generate the new state root and compare whether the state root claimed by the sequencers is the same as the one they generated themselves. As a result, Beacon Layer acts as a decentralized network of stateless lightclients for the rollup.
The Beacon Layer does not guarantee a valid state; it only guarantees a valid state transition. Beacon Layer validators do not inspect every value in a rollup’s state, but only those that are modified, where it ensures that the modification is valid.
The rollup network generates the validity proof and submits it to the Beacon Layer periodically (every 6 rollup blocks) in a special block called PoV block. In order to be able to verify a proof of validity produced by the rollup network, validators on the Beacon Layer implement a state transition validation function (STVF), the Web assembly code for which is a part of the validator’s runtime. The STVF takes as an input the PoV block and outputs the validity of the block. If the proof is valid, then the Beacon Layer submits the transaction batch and the pre and post state roots on Layer 1. Note that in existing rollups, this is done directly by the sequencers, while in case of AltLayer, it is the responsibility of the Beacon Layer network.
Note that the Beacon Layer detects any sequencer-level fraud at a much earlier stage and therefore reduces the chances of a dispute happening on the underlying Layer 1. In simple terms, the Beacon Layer acts as a lower-court for fraud adjudication while the underlying Layer 1 acts as the final supreme court. As a result, Beacon Layer provides better finality guarantees compared to rollups with a sequencer. We refer to this as Tier 2 Finality.