Definition of Sovereign Rollup

Note: This refers to the rollup in between socially-coordinated hard-forks.

Intro

A blockchain’s finalized state, S, is a function of its finalized blocks, B_{1}, \ldots , B_{n}, where B_{1} is its genesis block, and B_{n} is its finalized chain head.

A sovereign rollup (SRU), is a blockchain who’s finalized blocks are obtained as a function of some relevant data extracted from the finalized blocks of another blockchain, called its DA Layer.

Note: “Finality” properties vary across different DA layers- the rollup inherits whatever finality guarantees its DA layer can provide. For example, Bitcoin’s PoW lacks “hard” finality, and thus its SRUs inherit Bitcoin’s probabilistic finality.

The blockheight of the first DA layer block to include data relevant to the SRU is the SRU’s DAStartHeight.

Thus, we can say that the finalized state of a sovereign rollup changes as a function of the DA layer’s blockheight. No additional advice besides the relevant data extracted from the finalized blocks of its DA layer is needed to learn the finalized state of an SRU- this includes any timestamping or checkpointing advice external to the DA layer blockchain.

\begin{gather} GetRelevantData(DABlockHeight) \rightarrow Blob_{j} , \ldots, Blob_{k} \text{(Abbreviated to GRD)} \newline GetALLRelevantData(DABlockHeight) \rightarrow GRD(DAStartHeight) , \ldots , GRD(DABlockHeight) \newline ComputeFinalizedBlockchain(GetALLRelevantData(DABlockHeight)) \rightarrow B_{1}, \ldots , B_{n} \newline ComputeFinalizedSRUState(B_{1} , \ldots , B_{n}) \rightarrow S \newline \text{Thus,} \newline FinalizedSRUState(DABlockHeight) \rightarrow S \end{gather}
11 Likes

This is a really well-written definition to show Sovereign Rollups are pure functions of the DA layer. Nodes must not need any information to form the final state of the rollup.

However, that doesn’t only hold for Sovereign Rollups, it holds for every rollup because this definition only defines the node implementation. Let me give an example, Arbitrum:

First of all, let’s forget the existing Arbitrum node and assume I only have an Ethereum Full Node and I want to get the latest Arbitrum state. I can do two things:

  • Look Arbitrum settlement contract for state root, then sync state from a peer or scan full Ethereum history then check against root (OK this sounds like your last sentence:

    No additional advice besides the relevant data extracted from the finalized blocks of its DA layer is needed to learn the finalized state of an SRU- this includes any timestamping or checkpointing advice external to the DA layer blockchain.

    prohibits this definition from applying SC rollups).

  • The other option is to implement a custom node, which extracts relevant data (which is the sequencers’ call to the Arbitrum settlement contract), apply those transactions one by one since genesis, and get the latest state.
    → Your definition holds for this method. Now can we call Arbitrum sovereign rollup? I don’t know :man_shrugging:

If we think that SC rollups will eventually remove the multisigs and will lock their state on Ethereum forever, then we can say my node implementation sees Arbitrum as a sovereign rollup.

The funnier thing is right now community can fork Arbitrum to a new contract, which has 0 balance in it, and I can also upgrade my node software to follow the new contract after a specified block height. Now can we call it Sovereign Rollup? The community basically decided to make all pegged tokens value = 0 but that is their decision and they are free to do that. It is eventually a social consensus. It is not about whether can we do it or not, it is about whether should we do it or not. SC rollups choose to have a bridge, but SRUs can also choose to have a bridge if they don’t care about forking away the pegged tokens.

I understand that this article tries to define “internal settlement (?)” but using the “Pure function of the DA” is not the correct way to do it.

I think is about the “vibes” again. If you agree you should have a trustless bridge and the value it brings is bigger than the risk of not forking the chain, then you are not a sovereign rollup. If you believe the value forking freely brings is bigger than the liquidity from the DA layer, then you are a sovereign rollup. It is not as technical as expected for a conclusion but I would prefer to avoid any mathematical definition until I am sure about it.

1 Like

I understand that this article tries to define “internal settlement (?)” but using the “Pure function of the DA” is not the correct way to do it. I think is about the “vibes” again.

This post is not an attempt to make a distinction between settled and sovereign rollups, btw.

And socially-coordinated hard-forks are basically “an exception” to the definition (of any chain). The definition holds in between socially-coordinated hard-forks.

For settled rollups, the “relevant subset of block data” MUST be the full blocks of the settlement layer. Sovereign rollups have the option to concern themselves only with a subset.

2 Likes

Yeah the socially coordinated hard forks makes sense.

Can you further clarify the last paragraph? If I am running a sovereign rollup on Ethereum, in the current block height, how can I follow a subset of blocks? I need to follow every single block and transactions so that I can filter my relevant transactions.

1 Like

that’s an implementation detail of the GetRelevantData(DABlockHeight) function. Ethereum does not currently offer a way to trustlessly query a subset of block data, so you’d have to filter through the full block.