Hi everyone!
As part of the technical roadmap for migrating Celo to an L2 on Ethereum (aka CEL2), the community needs to select existing codebases and projects as key building blocks of the new platform (e.g., an L2 stack or off-chain DA solution).
cLabs has developed a proposed framework for evaluating different L2 stacks that we’re sharing below as a draft for consultation. This framework extends cLabs’ original proposal, in which we outlined some value propositions for becoming an L2, and some constraints on the design.
We would love your input, suggestions and feedback, to make this framework more reflective of all the priorities and concerns of Celo stakeholders. Right now, ‘we’ reflects cLabs’ views, but we hope as this doc evolves we can incorporate the general consensus of the whole community.
Note that we are selecting codebases and sub-components here, so we feel it is less useful to directly compare metrics like TVL, transaction count, users, except as indicators of what a closer collaboration and/or shared bridge between the two ecosystems could look like in future. This exercise is not to select a “best L2 stack”: it’s to figure out which is the best fit for the specific technical and non-technical needs of the Celo L2 project.
Proposed Framework
These are the core criteria we propose:
Ecosystem and Project Alignment
- Positive-sum platform growth opportunities – We seek opportunities for partnerships, shared platform growth and co-marketing that adds value to Celo and other stack participants.
- Mission and values alignment – Celo’s mission is at the core of everything we do. We seek common ground between Celo mission and the mission of other contributors to the L2 stack that Celo adopts.
- Ethereum community alignment – we believe in being active participants in the Ethereum community, and will factor in the opportunity to benefit from and contribute to Ethereum events, projects, standards and codebases.
- Ongoing role for Celo node operator community – A decentralized community of validators launched Celo mainnet and while the validator role may change, we want to leverage the strengths of these organizations through new roles as L2 sequencers, validators, or DA providers.
Technical Considerations
- Ethereum Compatibility – We want it to be very easy for Ethereum developers to deploy their apps on Celo, and for Ethereum tool providers to extend support to Celo, so that everyone building on Celo can utilize the full gamut of Ethereum tooling and libraries. We favor solutions that already have the confidence of key Ethereum ecosystem services.
- Increased Security – We want the move to an L2 architecture to deliver security anchored on Ethereum mainnet, both in theory and proven in practice. This includes both the exit guarantees that an L2 offers today, and the stack’s roadmap towards hardening security according to Vitalik’s training wheels framework as well as the Risk Analysis framework used by L2BEAT.
- Preserving single block finality – Payments use cases benefit from Celo’s single-block finality, so we look to retain this, potentially with a lower level of economic security, in tandem with a longer finality period for transactions requiring the economic security of settlement to Ethereum. This means we need to understand how in each L2 stack to mitigate Ethereum reorgs that affect L1 deposited transactions.
- Maintaining comparably low gas fees – Many Celo apps and use cases are predicated on transaction fees of the order of 1 US cent for a simple transfer. We want to retain this, despite the additional costs of ETH gas.
- Preserving token based gas currencies – We want to ensure it is feasible to continue to allow users to pay for gas with certain ERC20 tokens.
- Opportunity to inherit new features – We will factor in whether Celo could inherit new features from the L2 stack, especially ones that improve user experience or simplify onboarding, an important theme for Celo.
Migration Feasibility
- Least time and risk route to production – Our objective is to deliver CEL2 as soon as possible, minimizing implementation risk. We favor projects that have been audited and deployed and proven in production, vs projects whose designs are subject to ongoing change or whose implementations are not yet proven.
- Simple migration, with minimal downtime – The migration from Celo to CEL2 is a complex upgrade of a decentralized production service. We want to avoid anything that necessitates complicating this process. We recognize that it is impossible to communicate with, coordinate or compel every wallet holder, tool developer or smart contract deployer.
- Minimal downtime acceptable – We would accept a migration process that entails minutes of downtime, particularly if doing so reduces risk or time to delivery. However we feel the possibility or likelihood of hours or days of downtime is unacceptable.
- Avoid subtle incompatibilities – We would carefully consider any differences in EVM implementation, account setup, RPC interface, and developer toolchain. We would look carefully at the impact of the migration on indexing and consumption of indexed data, and will seek to avoid data inconsistencies or discontinuities.
- No breaking changes for deployed apps or contracts – We expect that developers experience a “hard fork like” change, where changes to behavior or interfaces can be clearly signposted and with a deprecation pathway. If the migration would break some or all existing smart contracts without developers taking action, that would have to be considered very carefully (since some developers may not be reachable, and some contracts affected may not be upgradeable).
- No migration action required by Celo end users – We expect that Celo users need to take no action for the upgrade to succeed.
- Commitment to developer collaboration – To deliver the project, we will need strong lines of communication with and timely support from the developers of the shared codebases.
Governance and Economic Alignment
- Independence within Ethereum – It is important that the Celo community can fix, modify, and extend the codebase that comprises Celo, and that the platform can be maintained and governed, with minimal constraints. We strongly prefer using permissive open source codebases and avoiding complex licensing arrangements. At the same time, we prefer to evolve and improve Celo governance, and will avoid limiting Celo through governance using any token other than CELO.
- Roadmap influence – We value indications that Celo will be able to influence and contribute to the roadmap and governance of components it will depend on.
- Contribution Incentives – We value opportunities for Celo community developers to contribute to shared codebases, especially where incentivized by additional grants or funding from other foundations or protocols using those components, alongside Celo Foundation and Celo’s on-chain Community Fund.
- Tokenomic implications – Implications for protocol token economics are an important consideration. We would weigh up if adopting a given stack would entail a transaction fee share agreement, or depend on the Community Fund purchasing tokens to use in e.g submitting or aggregating proofs, settlement, performing governance, etc. What token swap arrangements between protocols are proposed? What lock-ins does that create, and what control does Celo governance have to alter or remove those constraints later?
- Bridging – what are the costs, unlock period and user experience of withdrawing funds to the L1, or depositing to the L2? Does the stack enable, or does it require (either mandated, or practically in terms of achieving an acceptable transaction cost), participation in a stack-wide bridge or shared-liquidity layer? Does that preclude using existing bridges like Hyperlane, Wormhole, or Axelar? What opportunities for new partnerships, mission-aligned apps, and liquidity exists among those bridge participants, now and in the future?
Next steps
Just to reiterate – we would love your input, suggestions and feedback, to make this framework more reflective of all the priorities and concerns of Celo stakeholders. Right now, ‘we’ reflects cLabs’ views, but we hope as this doc evolves we can incorporate the general consensus of the whole community.
We’ll also follow up with a summary of the available options, as we see them.
We’re running a little behind our own stated timeline for figuring this out, but hope we can get general consensus on the framework by mid Dec.
Once we feel we’ve reached general consensus on this framework, cLabs will begin work on evaluating each L2 stack against this framework. We of course welcome others to do so too, and will also invite further input from the teams working on the stacks. This work will likely run through mid-Jan.
cLabs will publish its recommendation for the approach we believe the community should support in moving towards the L2 codebase. After further discussion, we hope to make a further “temperature check” governance proposal to ratify this.
As a decentralized protocol, the L2 solution that Celo becomes is, of course, the implementation that validators choose to follow at subsequent hard forks, and the contract upgrades that CELO holders vote for by governance proposal. Our aim is to make sure cLabs and other contributors have the support of the community as we all proceed to build towards that point.
Please post your thoughts below, and join us for a L2 Discussion call on 13 Dec 2023 8a PST / 11am EST / 4p GMT / 5pm CET – save the date, call details to follow.
– cLabs team