Building a mobile-first L2 with Celo
by Christoph Rosenmayr and Gleb Dudka, November 27th
Celo is an EVM-compatible L1 with a special focus on enabling global mobile-first peer-to-peer payments while remaining carbon-negative. As core contributors of the Celo blockchain, cLabs proposed transitioning from a standalone L1 to an Ethereum L2 in July. The Celo community gave overwhelmingly positive feedback to the on-chain governance “temperature check,” voting to allow cLabs to focus on researching and refining the proposed technical implementation before an eventual hard fork of the chain to achieve the migration from an L1 to an L2 (NB: The first of two hard forks, known as Gingerbread, which helped achieve greater alignment with the Ethereum roadmap, was completed on September 26). With this article, we first want to highlight Celo’s mission and values to then understand the aforementioned technical proposal and how it would differentiate Celo from existing L2s.
With the “Building” series, we pay tribute to portfolio companies recently achieving a significant milestone or breakthrough, contributing to an open, decentralized, and more robust architecture for tomorrow’s web.
Key properties: mobile-first – native stable assets – carbon-negative
Since 2019, we have been backing Celo’s mission to provide global, transparent, and scalable peer-to-peer payments and financial infrastructure. As two-thirds of the unbanked population has a mobile phone, the introduction of industry-leading mobile-first features and the onboarding of mobile-native users have been cornerstones of Celo’s product strategy:
- As part of Celo’s identity protocol, validators run an attestation system, allowing the transaction of funds to any phone numbers. The funds are then escrowed until the recipient verifies control via SMS.
- An SDK for building native mobile apps on Celo and a strong suite of mobile-first wallets, such as Valora and Opera’s MiniPay, the latter of which gives over 350M Opera Mini mobile users throughout Africa access to Celo’s decentralized applications (dApps).
- Celo’s Plumo “ultralight client” uses zk-SNARKs, allowing efficient syncing on resource-constrained nodes, like mobile phones.
To further enable the global payment use case, trustworthy, natively issued stablecoins are key! Celo Stablecoins (cUSD, cEUR, cREAL) are decentralized via a hybrid overcollateralized & seigniorage-style model, in which arbitrageurs help maintain the stable peg by expanding and contracting the outstanding supply via redemptions to match demand. Gas fees on Celo can be paid with whitelisted ERC-20 tokens, including their native stablecoins improving UX for payments.
While Proof-of-Stake (PoS) consensus already consumes less energy, 20% of Celo’s epoch (block) reward has been committed to off-chain carbon offsetting since genesis. Coupled with the Celo Foundation’s bounties for regenerative design, this has made Celo the home of a growing ReFi (Regenerative Finance) ecosystem with more than 1,000 projects in over 150 countries.
Celo’s next chapter
Despite having similar visions and close compatibility, Ethereum’s transaction fees in the past were prohibitive for Celo’s use cases. However, as L2 rollup stacks and, more recently, DA (Data Availability) solutions have evolved, as with EigenLayer’s EigenDA, it is now possible for Celo to return home to Ethereum and gain enhanced composability as well as increased security, all while maintaining low gas fees and key features as mentioned above. This might lead to even greater success of the Celo ecosystem, which currently sees over 3,268.2% daily active users year-to-date (TokenTerminal) and daily active users among the top 10 chains (currently ranked #6 on TokenTerminal).
We now describe Celo’s L2 migration in more detail, describing the proposed architecture, summarizing how these changes affect current Celo stakeholders, and analyzing the general value proposition for the transition.
The proposed architecture aims to initially leverage Optimism’s OP Stack with standout characteristics being a decentralized sequencer powered by Celo’s existing validators and DA with EigenDA, while focusing on maintaining Celo’s 1-block finality.
1. Decentralized Sequencer
In L2s, the sequencer(s) orders transactions into blocks, which can then be submitted to the DA layer. Current L2s often rely on a single centralized sequencer operated by a trusted party. This presents a single point of failure and a potential vector for censorship (however, most L2s have forced transaction inclusion mechanisms).
While most L2s have committed to decentralizing their sequencer over time, we are happy to see Celo lead the charge toward decentralized sequencing. If implemented well, decentralized sequencers improve censorship resistance and liveness guarantees while maintaining Celo’s 1-block finality, resulting in an improved user experience.
cLabs has proposed to modify the existing modular OP Stack sequencer to leverage their existing set of L1 validators as sequencers. The sequencer rotates similarly to current Celo proposers and requires two-thirds of signatures from other sequencers (current validators) through the existing PBFT consensus to then post the transaction batch to the DA Layer. Rewards and hardware requirements to become a sequencer should stay similar to running a Celo validator, with the necessary addition of having to run (or have access to) an Ethereum full node.
Please keep in mind that this is an area of active research, proposed architecture might be revised. As sequencers are both proposers and block builders, an unbundling of those roles on L2s might be an interesting future area of research.
2. Data availability layer
Data Availability (DA) refers to all transaction-related data being available to nodes on the network to independently verify transactions and compute the blockchain’s state without the need to trust one another. The DA Layer refers to the location where said data is stored. Unlike current L2s, which use Ethereum as the DA layer, cLabs proposes to use EigenDA (EigenLayer secured by ETH restakers) for the full transaction data while storing DA Certificates (pointers to full data) on Ethereum. L2 full nodes can use the pointers on Ethereum to query the full transaction data on EigenDA.
This architecture allows Celo to maintain its low gas fees ($0.01), which is key for Celo’s payment use cases compared to competitors that have opted for DA on Ethereum. EigenDA, however, can also introduce new dependencies. We look forward to seeing whether Proto-Danksharding (EIP-4844) can reduce rollup fees enough to allow Celo to utilize native DA on Ethereum while maintaining their very low fees.
3. 1-block finality (preventing reorgs)
Maintaining current 1-block finality is highly important as the real-world payments use case is complicated under potential reorgs since only the on-chain part of the transaction gets reverted (“delivering goods to customer but the chain reverts after he left the store”). To avoid reorgs caused by sequencers, Celo is implementing on-chain slashing, which means 1-block finality is secured by a Celo stake (via sequencers). Assuming all or most of the current Celo L1 validators transition to L2 sequencers, 1-block finality is secured by the same stake as Celo L1 currently (110 Validators elected by 270M locked CELO).
There is an additional layer of security from Ethereum and EigenDA, when blocks on Ethereum are finalized (every 2 epochs = ~13 mins). Mitigating the effect of potential Ethereum reorgs is also important to secure 1-block finality. (“What happens if assets get deposited from Ethereum > Celo, but Ethereum reverts and Celo doesn’t”). A possible solution could be only accepting transactions from finalized L1 blocks (every 2 epochs).
Summarizing the upgrade
We are excited about Celo’s L2 transition, which comes with many benefits made possible by the advancements in Layer 2 scaling infrastructure. We are thrilled to see Celo lead the innovation on both the usage of EigenDA and decentralized sequencing, which we hope will lead the way toward more decentralized L2s.
We believe those to be the most important advantages made possible by a transition from L1 > L2:
- Increased alignment & composability:
Better tooling & libraries via the OP stack and liquidity sharing with Ethereum is simplified by a trustless L1<>L2 bridge, which helps to onboard users from Ethereum more easily. This enables developers to build better dApps. - Increased security:
1-block finality is secured by the same stake as the current Celo L1, but there is an additional (slower) layer of security by leveraging Ethereum + EigenDA - Maintaining key features:
The combination of an Optimistic Rollup and EigenDA allows the maintenance of key features like low gas fees and its 1-block finality, both key in enabling Celo’s (micro) payments use case. - Little changes to existing Celo stakeholders:
Besides validators becoming sequencers, there are no further changes for existing Celo stakeholders. Users can access the same contracts and financial infrastructure. As users have become accustomed to it, maintaining their familiar UX is a key consideration in any technical upgrade.
Join the discussion
A significant amount of research and development still has to be conducted before a transition can occur. If you have ideas and/or want to stay up to date with the community discussion, feel free to visit the Celo Forum or the Celo Discord.