Celestia vs EIP-4844: The Data Availability Showdown for Next-Gen L2s
Celestia vs EIP-4844: The Data Availability Showdown for Next-Gen L2s
Celestia vs EIP-4844: The Data Availability Showdown for Next-Gen L2s
Celestia vs EIP-4844: The Data Availability Showdown for Next-Gen L2s
Celestia vs EIP-4844: The Data Availability Showdown for Next-Gen L2s
Eclipse recently broke the record for TPS for a live L2. This attracted significant attention to our approach to Data Availability (DA). Optimistic rollups require DA to guarantee security. We made a pivotal design decision early on to use Celestia as our DA layer instead of Ethereum's EIP-4844 blobs—the choice most L2 rollups make today.
In this article, we'll explore data availability, Eclipse's current implementation, and why Celestia isn't just our preferred choice — it is essential for our needs.
What is the point of Data Availability?
For an optimistic rollup, the goal of DA is to provide all the data necessary for a third party observer to reconstruct the state of the L2 by re-executing blocks. This includes:
- All transactions
- The order in which these transactions were executed
- State commitments, i.e. assertions on the state of the L2 (more on this below).
With this data publicly available, any observer can reconstruct the chain through a process called chain derivation.
The first Ethereum rollups stored all this data as calldata in their Ethereum smart contract, which incurred heavy operational costs. This led some rollups to explore the possibility of storing most of this data elsewhere, fostering demand for so-called purpose built DA platforms: Celestia, EigenLayer, or Avail, for example.
In the meantime, Ethereum came up with a native DA solution: EIP-4844. Since the Dencun upgrade, Ethereum accepts “blobs” of data. A blob is a relatively large binary object, by blockchain standards. Blobs are much cheaper than calldata and enable rollups to post all their data directly on Ethereum, but are inaccessible from smart contracts and are persisted for only a limited amount of time. This led to a drastic decrease in rollup costs over time.
So, all is well? For low-throughput L2s, maybe. For high throughput L2s, blobs are not enough!
Data availability for high-throughput L2s
There are two major problems that blobs do not solve for high throughput L2s:
- While cheaper than calldata, EIP-4844 blobs are not affordable: since their activation, Arbitrum paid on average 90k\$ and Base over 300k\$ per month in blob fees! Operating an optimistic rollup on Ethereum still costs several million dollars per year.
- There is simply not enough capacity for a high-throughput L2 today using EIP-4844 blobs. Eclipse posts more data today than what could fit in the entire blobspace for Ethereum, at an average of “only” 2k TPS!
In short, using Ethereum for data availability is simply not viable for high-throughput L2s. This is where Celestia comes to the rescue. Let's compare the key metrics.
Note that the daily capacity for Ethereum shown above is overstated, since posting 6 blobs per block continuously would trigger exponential fee increases. In practice, the realistic daily capacity is closer to ~3 GB.
This means that Celestia's capacity is nearly 40 times greater than Ethereum's!
How does Eclipse perform in terms of fees? Let's examine the data comparing Eclipse and Base from January 1 to January 10:
We see that we posted 10x more data than Base while processing 20x more transactions. This can partially be explained by the variable blob size of Celestia. If we zoom in this picture down to the level of single transactions, we are 510x more efficient than Base on DA costs thanks to Celestia!
Censorship resistance
The main tradeoff of using an alternative DA provider is that you are dependent on the security of another network, in addition to Ethereum. While Celestia may not match the level of decentralization of Ethereum, it provides sufficient security guarantees for our needs:
- 100 validators
- Reed-Solomon Erasure Coding ensures data availability even under partial node censorship
- Priority fees make censorship attacks economically prohibitive.
To illustrate this, here's the cost for an attacker to raise Celestia's fees to match Ethereum's for one day:
- Gas needed for a full day of blocks: 67,428,048 → 970,963,891,200
- Base fee: 0.002 utia / gas
- EIP-4844 blobs are approximately 400x more expensive per MB
This means an attacker would need to spend 776,771 TIA (approximately $3M) per day to make Celestia as expensive as EIP-4844.
For a true censorship attack, blocking every transaction from going through, we can apply the same reasoning used for Ethereum: if a state-level actor attacks the network, the community would likely reach social consensus on how to deal with the attack within a week, for example by censoring all the accounts related to the attack.
Future Developments
We are currently in the process of improving the format of the data we post on Celestia. We currently post every finalized block to Celestia, compressed.
With the coming update, we will now post batches of blocks instead, around once every hour. Using this scheme, early experiments show that we should reduce the amount of data to around 1GB per day.
Note that optimizing our DA storage format might not even be a concern anymore in a few months: Celestia is planning on introducing 1GB blocks. This abundance of blob space will give us the opportunity to post even more data for use cases we have not thought of yet.
For all these reasons, we are committed to Celestia for the long term. After all, we are setting our sights far beyond 2000 TPS.