Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

L2 development funding II #499

Merged
merged 3 commits into from
Nov 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions CGPs/cgp-0154.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
---
cgp: 154
title: 'Funding for cLabs blockchain L2 project'
date-created: 2023-10-31
author: 'Marek Olszewski (@marekolszewski)'
status: DRAFT
discussions-to: 'https://forum.celo.org/t/follow-on-funding-proposal-funding-for-remaining-clabs-celo-l2-development/9354'
governance-proposal-id:
date-executed:
---

## Overview

This proposal seeks continued funding from the Celo Community Fund to support cLabs’ efforts in building out the Celo L2 client. We are requesting a grant to cover the next 6 months of development, following the successful execution milestones in a prior grant request. The proposal includes detailed milestone updates, budget estimates, and a commitment to transparency and progress reporting.

## Background

In our previous governance proposal, we outlined a [12-month plan](https://github.com/celo-org/governance/blob/main/CGPs/cgp-0106.md) for developing the Celo L2 client. At the community’s request, we divided this into an initial [6-month funding](https://forum.celo.org/t/funding-for-clabs-blockchain-public-goods-work/6569/19) period, with the intention to return for additional funding after demonstrating progress and achieving key milestones. Over the past 12 months, the cLabs team has made substantial progress toward the milestones in the initial proposal, as well as additional milestones such as achieving a feature-complete codebase that is ready for audit. Given this, we are now ready to move forward with the funding request for the next phase of the L2 upgrade.


### Milestone Achievements to Date

We are pleased to report that cLabs has achieved the following milestones since the first proposal:

* L2 Transition Foundations: Completed scaffolding for L2 testnets, laying the groundwork for further development.
* Stack Selection: Conducted a community-led evaluation process to select the most suitable L2 stack for Celo’s needs.
* Temperature Check: facilitated a governance vote that made the final decision on the L2 stack.
* Public Testnets: In addition to early test networks, cLabs has successfully hard-forked the Alfajores testnet twice into two long-lived public L2 testnets: Dango and Alfajores.
* Data Availability Layer: Worked with the EigenDA and Optimism teams to develop and test high performance EigenDA support for the OP-Stack.
* Decentralized Sequencer Design: With input from the validator community during bi-weekly validator community calls, we are leaning towards a shared sequencer partnership that offers some token economic benefits to Celo validators. Such a design could offer greater interoperability with other L2s. We have a provisional design that could work with shared sequencers such as Espresso, as well as thoughts on what an in-house standalone decentralized sequencer could look like as a backup option. Additionally, with support from the validator community, the decision was made to delay launching the decentralized sequencer until after the mainnet L2 launch.
* Code Completion: In addition to the prior milestones, cLabs has also driven development of the L2 stack to a state of code completion, a milestone that was not included in the original 6-month grant.

## Proposal Overview

This follow-on proposal outlines the work planned for the next 6 months of the Celo L2 development. The key milestones and budget estimates are as follows. Note that the first milestone is complete and included retroactively.


| Milestone | Overview | Deliverables | Time Estimate (Since 1st proposal) |
| --- | --- | --- | --- |
| Code Completion | Achieving feature completion for the L2 stack. | A feature-complete version of the L2 stack that is ready for audit. | End of Month 10 |
| Audit | Work with Trail of Bits to audit the L2 codebase and fix any issues. | A publicly published audit report with major and critical vulnerabilities fixed. | End of Month 11 |
| L2 Upgrade Dry Run | Coordinate an upgrade of the Baklava network with the validator community. | An upgraded Baklava network. If all goes well, a block height can be picked for the mainnet upgrade. | End of Month 12 |
| Mainnet Upgrade | Support an upgrade of the Celo mainnet with the validator community. | An upgraded Celo mainnet. | End of Month 13 |
| Decentralized Sequencer | Work with leading shared sequencers in the Ethereum ecosystem to add support for shared and decentralized sequencing for the Celo network. Alternatively, develop a bespoke decentralized sequencer if the community prefers. | A decentralized sequencer network live on the Celo network | End of Month 16 |

### Budget Estimates

| Cost Category | Details | Monthly Cost |
| --- | --- | --- |
| Technical Staff | 7.8 FTE blockchain engineers, 1 FTE product manager, 1 engineering intern, 1 devops engineer, 1 smart contracts engineer. | $192,250 USD/month |
| Infrastructure & Tools | Google Cloud budget for testnets. | $10,000 USD/month |
| Communications Costs | One off event sponsorship for publicizing the L2 | $10,000 |
| Total Cost | | $202,250 USD/month + $10,000 |

## Transparency and Accountability

As with the previous proposal, funds will be deployed into a ReleaseCelo smart contract with a vesting schedule. The contract will include a 2-month cliff, and all remaining funds will vest monthly, ensuring accountability. If cLabs does not meet its commitments, a subsequent governance proposal can revoke the contract, returning unvested funds to the Community Fund.

We commit to reporting progress at each milestone and engaging the community through forum updates and discussions.


## Proposed Changes

The proposal funds a ReleaseGold contract already deployed to the network. It does not modify or upgrade any contracts or parameters.

## Verification

Before approving/voting, fetch the on-chain proposal and verify that the destination address matches the address of the ReleaseGold contract, `0x04a876E94AD57aBf28250Aa0f19cb4Ac031B566F` and that the amount is 2,792,440 CELO, equivalent to `2792440000000000000000000` or `2.792440e24`.

`$ celocli governance:show --proposalID TODO -n https://forno.celo.org`

Then verify that the same contract is a ReleaseGold contract with parameters that match the proposal:

`$ celocli releasecelo:show --contract 0x04a876E94AD57aBf28250Aa0f19cb4Ac031B566F -n https://forno.celo.org`

In particular check these parameters:

```
releaseOwner: 0xD533Ca259b330c7A88f74E000a3FaEa2d63B7972 # check this is GovernanceProxy address by copy-pasting into Explorer: allows Governance to revoke the grant
beneficiary: 0x8c7510C66f1BbF8f700a2665c898b3FB77550E38 # cLabs self-custodied account
releaseSchedule:
releaseStartTime: Fri, Nov 15, 2024, 3:00 PM GMT+7 # release start time
releaseCliff: Wed, Jan 15, 2025, 11:00 AM GMT+7 # 2 month cliff
numReleasePeriods: 8 # 8 month total vest
releasePeriod: 1 month, 10 hours # monthly vesting
amountReleasedPerPeriod: 349054875000000000000000 (~3.491e+23) # 8 times this value plus 1 CELO equals total grant (contract sends 1 CELO when beneficiary registers a vote signing key)
```

## Risks

This proposal does not deploy or upgrade contracts or change network parameters so represent minimal risk to the network.

This proposal does transfer funds from the Community Fund. The major risk is an incorrect destination address that would leave the funds in the wrong account, or an incorrect `releaseOwner` on the ReleaseGold account. So long as those are correct, if any other parameter is incorrect, the contract can be revoked, the funds returned, and the grant reissued.

## Useful Links

* [Forum Discussion, October 2024](https://forum.celo.org/t/follow-on-funding-proposal-funding-for-remaining-clabs-celo-l2-development/9354)
11 changes: 11 additions & 0 deletions CGPs/cgp-0154/commfnd-clabs-rg2-outputs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[
{
"GrantNumber": 1,
"Identifier": "0x88ba92083f4c8a862ab30eb4c93bdccb1e706fa5",
"Beneficiary": "0x8c7510C66f1BbF8f700a2665c898b3FB77550E38",
"ContractAddress": "0x04a876E94AD57aBf28250Aa0f19cb4Ac031B566F",
"MultiSigProxyAddress": "0x5A39c5A82238dAFEfb7C8300f7E2e35A379fE633",
"MultiSigTxHash": "0xfdbbdc83c59ba71a633c4818f891d5962c94c5d9ac30467f089044670f601a5d",
"ReleaseGoldTxHash": "0x36e36a034a8d2d55931f2358583690234508f70e0a03c2eefd204d4a8a4bb68a"
}
]
19 changes: 19 additions & 0 deletions CGPs/cgp-0154/commfnd-clabs-rg2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[
{
"identifier": "0x88ba92083f4c8a862ab30eb4c93bdccb1e706fa5",
"beneficiary": "0x8c7510C66f1BbF8f700a2665c898b3FB77550E38",
"releaseStartTime": "2024-11-15T08:00:00.000Z",
"releaseCliffTime": 5256000,
"numReleasePeriods": 8,
"releasePeriod": 2628000,
"amountReleasedPerPeriod": "349055",
"revocable": true,
"releaseOwner": "0xD533Ca259b330c7A88f74E000a3FaEa2d63B7972",
"refundAddress": "0xD533Ca259b330c7A88f74E000a3FaEa2d63B7972",
"subjectToLiquidityProvision": false,
"initialDistributionRatio": 1000,
"canValidate": false,
"canVote": true,
"fundGrant": false
}
]
11 changes: 11 additions & 0 deletions CGPs/cgp-0154/mainnet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[
{
"contract": "GoldToken",
"function": "transfer",
"args": [
"0x04a876E94AD57aBf28250Aa0f19cb4Ac031B566F",
"2792440000000000000000000"
],
"value": "0"
}
]
Loading