After Mustafa’s latest post, a discussion has been opened to add state to the DA to enable more efficient RU operations. In light of this, I would like to look at the question of sequencing, and X-RU atomicity.
The DA layer can be used for sequencing txs. As I understand this is the traditional Celestia vision.
However this is not really an efficient or flexible method.
- A lot of Rollups will not use the DA layer for tx sequencing, they will have more efficient external sequencers, even if those sequencers post the txs as batches to the DA layer (scroll, polygon zkevm).
- Volitions, ZkPorters, and Validiums will also not use the DA layer for sequecning, as the off-chain component means they will store state diffs and not calldata onchain.
- Finally a lot RUs will want their users to pay for tx fees in the RUs own tokens, so they will use external sequencers.
However, external sequencers are also not ideal. We will also need to use the DA layer for forced txs to a RU, this is how CR is guaranteed. This is not possible with external sequencers.
Finally, for X-RU atomicity, using the DA layer for txs will also be needed. This is similar to the CR case, but there is a major difference, as X-RU txs are different from normal txs. They are already the outputs of a RU, this means they can already have requirements that are enforced in the RU’s proof (fees, format, etc), and so they cannot be used for spamming/dos attacks.
So we have 3 requirements that our sequencing mechanism needs to satisfy: efficiency/flexibility, CR, and X-RU atomicity.
I think the simplest compromise between these options is the following:
- We will need external sequencers. As they are external, it makes the system modular, so it makes the whole design simpler. They can even scan the DA layer for txs, if that is what they want to do.
- We will need X-RU atomicity, so we should build that into the protocol. This is easier than users directly submitting txs to the DA layer, as X-RU txs are submitted along with proofs, so we can have them satisfy some requirements.
- Once we have external sequencers, and X-RU atomicity, CR is solved, as a user will be able to submit a tx to rollup A via rollup B, even if the external sequencers of A are censoring.
So we only need external sequencers and X-RU atomicity. The X-RU txs are submitted to the DA layer along with the proof of the RU. For atomicity we will need the RUs to keep track of the X-RU txs. There are two ways to do this, scanning the DA layer, or we can keep track of the X-RU txs in the DA layer itself as some form of additional state.
This is where this ties into Mustafa’s post. I am not exactly sure how to exactly keep track of the state of the X-RU txs in the DA layer, but I’m pretty sure a shared proof will be necessary. (Maybe in a 2D KZG commitment scheme, as that would enable the senders and receivers to open up the commitment from the different dimensions, so it could be efficient.)