One important attribute of a good blockchain user experience is fast transaction confirmation times. Ethereum has made significant improvements in this aspect compared to five years ago, thanks to EIP-1559 and the transition to Proof of Stake (The Merge). With stable block times, users can typically expect transaction confirmations on Layer 1 (L1) within 5-20 seconds, comparable to the experience of using a credit card for payment. However, further improving the user experience is valuable, as certain applications may require delays of a few hundred milliseconds or even shorter. This article explores some practical options for improving transaction confirmation times on Ethereum.
Existing Ideas and Technologies Overview:
– Single-Slot Finality
– Rollup Preconfirmation
– Based Preconfirmations
What are we actually looking at?
How should L2 approach this?
Currently, Ethereum’s Gasper consensus uses a slot and epoch architecture. There is one slot every 12 seconds, and a portion of verifiers vote on the head of the chain. Within 32 slots (6.4 minutes), all verifiers have a chance to vote. These votes are then interpreted as messages in a consensus algorithm similar to PBFT, providing strong economic guarantees called finality after two epochs (12.8 minutes).
In the past few years, dissatisfaction with the current approach has grown. The main reasons are the complexity of the slot-to-slot voting mechanism and the epoch-to-epoch finality mechanism, as well as the long 12.8-minute time frame, which is too long for users to wait.
Single-Slot Finality (SSF) replaces this architecture with a mechanism similar to the Tendermint consensus, where block N is finalized before block N+1 is generated. SSF retains the “inactivity leak” mechanism, allowing the chain to continue running and recover even when more than one-third of verifiers are offline. The challenge with SSF is that every Ethereum staker would need to publish two messages every 12 seconds, which places a significant load on the chain. However, there are clever ideas, such as the recent Orbit SSF proposal, that can alleviate this problem and significantly speed up “finality” to enhance the user experience.
For the past few years, Ethereum has been following a roadmap centered around rollups, designing the Ethereum base layer (L1) to support data availability and other features for L2 protocols like rollups, validiums, and plasmas, which can provide users with a similar level of security at a larger scale. This has led to a separation of concerns within the Ethereum ecosystem: L1 focuses on censorship resistance, reliability, stability, and maintaining/improving core functionalities, while L2 focuses on directly engaging users through different cultures and technological approaches. However, if L2 continues on this path, a problem arises: L2 aims to provide faster confirmations than the 5-20 seconds on L1.
So far, it has been the responsibility of L2 to create its own “decentralized sequencer” network. A small group of verifiers could sign blocks every few hundred milliseconds and commit their stake behind those blocks. Ultimately, the headers of these L2 blocks would be published to L1.
However, L2 validators can engage in “fraud” by signing block B1 first and then signing a conflicting block B2 and submitting it to the chain before B1. But if they do so, they will be caught and penalized. We have already seen practical cases of this centralized version, but the development of a decentralized sequencing network through rollups has been slow. It can be argued that requiring all L2s to have a decentralized sequencer is unfair, as it would be asking rollups to do almost the same work as creating an entirely new L1. Therefore, Justin Drake has been advocating for an approach that allows all L2s (and L1) to use a shared preconfirmation mechanism within the Ethereum scope: based preconfirmations.
Based preconfirmations assume that Ethereum proposers are highly complex participants related to MEV (Miner Extractable Value). The method utilizes this complexity by incentivizing these complex proposers to accept responsibility for providing preconfirmation services.
The basic idea of based preconfirmations is to create a standardized protocol where users can provide additional fees to ensure that their transactions are immediately guaranteed to be included in the next block, along with a declaration of the execution result of the transaction. If proposers violate any commitments made to any user, they can be penalized.
Based preconfirmations provide guarantees for L1 transactions. If rollups are “based”, then all L2 blocks are L1 transactions, and the same mechanism can be used to provide preconfirmations for any L2.
The question is, how well can we do with the Ethereum-native epoch-and-slot structure (Type 1)? If it becomes very good, the significance of Type 3 decreases. As all “based” solutions are not applicable to data L2s like plasmas and validiums, Type 2 will always exist. If an Ethereum-native epoch-and-slot structure can reduce slot time to 1 second, the space for Type 3 becomes much smaller.
We are still far from the ultimate answers to these questions. A key question is how complex block proposers will become, which remains an area of considerable uncertainty. Designs like Orbit SSF are very novel, so there is still value in fully exploring the design space of schemes like using Orbit SSF as the epoch in an epoch-and-slot design. The more options we have, the better we can serve users on L1 and L2, and simplify the work for L2 developers.