Using DA to achieve censorship resistance, i.e. moving tx mempool to DA?

(Context. I have raised this question when talking with John Adler and Josh Bowen during ETHDenver. I’m not an expert on this subject so I’m summarizing the proposal in a short post here to facilitate further discussion.)

The problem. In the current architecture of roll-ups, a sequencer collect and order user transactions, in a “mempool”, before executing them and posting valid transactions to the DA layer. With a centralized sequencer, the system is not censorship resistant since the sequencer can selectively filter transactions.

Current solution. To add censorship resistance, we could decentralize roll-up sequencers, which seems to be the approach that many roll-ups are planning to take. However, this approach moves the architecture of roll-ups closer towards that of side chains.

Potential solution? What if we use the DA layer to achieve censorship resistant by having users directly post to DA layer their transaction requests? This can be seen as moving the mempool onto the DA layer. The benefit is that execution only have to be held accountable for the validity of execution, which can be done via zk or fraud proofs. Hence, we no longer need to decentralize sequencers / execution layer.

Some immediate questions:

  1. Will Celestia DA layer be cheap enough for this to make sense?
  2. How can the execution layer prioritize txns when posting rate is higher than execution rate? Could DA layer keep a priority queue of txns based on proposed fees?
6 Likes

Posting the transactions individually rather than in batches to the DA layer seems inefficient - was also the initial idea behind Celestia if I remember correctly. Having multiple sequencers isn’t just paramount to censorship-resistance, but also liveness. Initially, there doesn’t even need to be a consensus mechanism to determine fair ordering of transactions at the rollup level, could have a naïve leader election algorithm to rotate the sequencers.

In either case, it is still fundamentally different from a sidechain because all rollup data from the transactions are published to receive consensus over ordering and to ensure data availability – sidechain’s only post state commitments of blocks that were already validated by the sidechain validator set.

Additionally, specific censorship-resistant mechanics could be implemented, such as crLists, that can be used to hold sequencers accountable if they are censoring specific transactions that are deemed eligible to be included in blocks.

Wouldn’t this move sequencing authority one layer lower, from the sequencer set of the rollup to the validators of the DA layer?

Allowing users to post messages directly is a viable model, and it was the original model in the LazyLedger paper. It still has use cases, as not all applications need to be in a rollup that have a two-way bridge with another chain. For example, you can construct a domain name registration app where you have to burn Celestia tokens in order to register domains (a one-way bridge from Celestia to the domain registration app).

The main draw-back is that if you do want a two-way bridge (or have light clients), it cannot be achieved in a trust-minimized way, because there’s no state commitments for that app, unlike rollups. However, this might not actually matter if you’re trying to build a sovereign rollup or settlement chain anyway (such as Cevmos), as it wouldn’t have trust-minimized bridges with other chains.

Thanks for the responses! I definitely didn’t do enough homework before posting.

Additionally, specific censorship-resistant mechanics could be implemented, such as crLists, that can be used to hold sequencers accountable if they are censoring specific transactions that are deemed eligible to be included in blocks.

I am not familiar with crLists and cannot find references to it. Do you mind to elaborate? It does not seem possible to me that one could prove censorship of certain transactions, unless communication from client to the sequencer is somehow recorded and can be referred to during such verification, but doesn’t that amounts to communicating via DA?

it cannot be achieved in a trust-minimized way, because there’s no state commitments for that app, unlike rollups

Can’t the app also post state commitments (alongside validity proofs or potential fraud proofs) just as roll-ups do? The only difference is that transactions posted to DA might not get processed by the app / roll-up indefinitely even if it is recorded on DA.

After looking at the SoK paper on cross-chain communication, I understand now why the proposal of moving the mempool to DA does not solve any problems. What I mean by censorship resistance in the post is equivalent to liveness as defined in Definition 1. We have ways to achieve liveness in a trust-minimized manner with local mempools. Moving mempool to DA does not change the trust assumption at all for liveness (which is Alex Beckett’s point). However, it does change who gets to re-order these txns (which is Alex Evans’ point).

This could viable for validity proofs, as in the original zk rollup proposal, anyone could propose a block. For fraud proofs it’s more tricky, as if anyone can submit an invalid block, it’s a DoS issue as it forces everyone to constantly generate and download fraud proofs. However, I suppose you could limit the set of block producers to those who have enough tokens bonded, and slash them in the event of a valid fraud proof.