Staking Hub: Celo AMA

Celo’s mainnet is planned to be run by and used on mobile phones by late 2019 or early 2020. On Sep 19, 2019, Roman, Claire, Nam, and Kevin joined us to answer all questions Celo, and to discuss the role of staking in the network. Staked tokens will be locked for three days, and likely with no slashing. Parameters will be modified via on-chain governance.

Quick Takes

  • Designed to be run by and used on mobile phones
  • Mainnet planned for later this year or early next
  • Parameters will be modified via on-chain governance
  • Staked tokens locked for three days
  • Currently no slashing for stakers (non-validator)

What we don’t know

  • We’re awaiting an announcement detailing the genesis distribution of Celo Gold (cGLD) tokens
  • We don’t know the cGLD inflation rate or the staking reward rate
  • We’re awaiting more precise details about Celo’s governance process
  • We’ll want to know which stakeholders will have which roles on the Celo Foundation, and how the foundation may participate in voting for validators and governance proposals

Celo

Celo will be a proof-of-stake based blockchain with smart contracts. The tech will have a phone number-based identity system with address-based encryption and eigentrust-based reputation, which you can read about in the whitepaper. Celo’s stablecoins will be controlled by an algorithmic reserve-backed stabilization mechanism. cUSD will be the first stablecoin, which will be pegged to the US dollar.

Which assets will back cUSD & other Celo stablecoins, besides cGLD? The team expects that the list of Celo reserve assets and their weights in the reserve allocation will be governable. At mainnet launch, this list will include Bitcoin and Ether, and C Labs is currently evaluating which other non-Celo currencies to add.

The Celo team’s mission is to build, and to drive the development and end-user adoption of Celo: a platform to build financial tools for anyone with a mobile phone. One of the team members told us that we have a unique opportunity in history to rethink how money is printed and distributed, and Celo will be a monetary system that aims to create conditions of prosperity for all. How could it be used? For remittances, global access to a store of value based on USD, universal basic income, savings & loan circles, among others.

Focus: Development & End-User Adoption

C Labs is focused on end-user adoption and development. Similar to how the iphone launched with iOS and apps, Celo will be full stack. Their strategy: first learn from users worldwide, then decide where best to integrate features in the stack.

One such focus, according to of the team members, is on identity, and how it may lead to a more intuitive user experience, as with traditional products like Venmo, Square Cash, M-Pesa, etc.

How does a global monetary system scale?

Given its global ambitions, Celo will need to scale. Felix (Chorus One) asked about Celo team’s plans to scale the platform, in terms of throughput eg. via sharding or a Layer 2 solution.

One team member explained that Celo will scale in a few ways:

  1. PBFT style consensus algorithm (similar to Cosmos’ Tendermint) is running on full nodes and validators on the Alfajores alphanet.
  2. Aggregated BLS signatures compress all validator signatures to 1, which reduces header size.

C Labs also plans to implement a Hotstuff-like consensus algorithm, which should increase the throughput of transactions and blocks for Celo validators.

Since this blockchain is designed to be used on mobile phones, the team is currently working on “ultralight” sync, a form of light client that should allow phones to verify Celo’s blockchain with only a very small subset of its data. How is that different from a light client? Users won’t have to download all of the headers of the blockchain.

Who will Celo’s stakeholders be?

The team expects there to be a number of different kinds of Celo stakeholders:

  • End users – mobile phones using Celo Dollar & potentially Celo Gold
  • Celo Gold stakers – vote & are eligible for rewards
  • Validators – responsible for running the network
  • Full nodes – responsible for serving light clients i.e. mobile phones
  • Developers – contribute to Celo and/or build on Celo
  • Other ecosystem participants – eg. exchanges and market makers

Ultimately, the biggest stakeholders will be those that control cGLD, the Celo Gold token, since they will own and control the Celo network.


cGLD (Celo Gold) Token

Celo has a long list of backers, but we do not yet know who will initially own what proportions of the network.

The team is still working on the distribution plan and will be announcing the details shortly. C Labs’ objective is to get Celo Gold into as many hands as possible at launch. Reach out to the team if you have any ideas!

cGLD Supply

Celo Gold (cGLD) is one of Celo’s reserve currencies and will be used as a utility token for Celo. Figment’s understanding is that it will have a fixed total supply, and in the long term, will exhibit deflationary characteristics (similar to Bitcoin’s design). We understand that a total of 400 million cGLD tokens will be released as epoch (daily) rewards over time, and afterwards, transaction fees will likely fund the network.

Inflationary funding will initially be used to sustain validator groups, an infrastructure fund (for grants decided by on-chain governance), a carbon offsetting fund, and to pay holders of locked Celo Gold (ie. voters). We don’t yet know the rate of inflation, but we’re expecting details in the next couple of weeks (from Oct 7, 2019).

The Celo Reserve

The Celo reserve will back the value of Celo stablecoins. The reserve will include cGLD and non-Celo cryptocurrencies, like Bitcoin and Ether. Expansions of the stablecoin supply will result in a reserve inflow of cGLD, while contractions result in a reserve outflow of cGLD.

The reserve is designed to be frequently rebalanced towards governable target weights, to ensure a well-diversified reserve that’s also correlated to the overall growth of the stablecoin supply.

How are cGLD and cUSD related?

Fiat-backed stablecoins inspired the Celo expansion and contraction mechanism. Explained simply, the Celo stablecoin mechanism allows users to sell 1 cUSD to the Celo reserve for 1 USD worth of cGLD and vice versa, with some additional safeguard features. That means that we can expect part of cGLD’s value to be driven by the likelihood of future expansions of Celo’s stablecoin supply.

cGLD’s Utility

Primarily, cGLD will be:

  1. used to pay for transactions*;
  2. staked by token-holders to earn rewards;
  3. sold to the reserve to mint new stablecoins;
  4. locked up to register a validator or a validator group;
  5. used to vote for validators and on governance proposals.

*Users will not have to hold cGLD to pay for a transaction. The system will negotiate transaction fee payments with whichever asset they are transacting.


Staking

Stakers benefit in a few ways. They elect validators, receive staking rewards, and participate in governance. We don’t yet know the rewards rate, but our understanding is that they will be compounded (ie. automatically staked).

The risk of staking is primarily opportunity cost, since staked cGLD will have a (3) three-day withdrawal notice period. C Labs is exploring slashing for cGLD holders that voted for a slashed validator group, but slashing seems unlikely.

Validators

Figment’s understanding is that any node can be a validator candidate. Validators can organize themselves into validator groups, should they wish to pool their election efforts. The number of validation slots that a validator group is allocated is calculated using the D’Hondt method.

Capped at 100 validator slots, validators are selected by vote weight, tallied on a daily basis. cGLD holders will not need to vote daily. Votes automatically re-vote every epoch (currently a day) unless you change your vote.

To be eligible for election, validators must put up a slashing stake that is being determined. Votes are made for validator groups, not for individual validators.

What’s a validator group?

A validator group is essentially an ordered list of validators, along with metadata, like name and URL. The Celo team expects that validators will organize themselves into validator groups similar to parties in representative democracies. A smart contract will select the validators for the following epoch, using a ‘closed party list’ form of proportional representation.

The team expects very different types of groups to appear. Some of the groups may only contain validators operated by the group owner, while others could be more open to other validators.

Risks and Rewards

Validator groups won’t earn rewards based on stake-weight–instead, they’ll be rewarded a fixed, maximum stipend of 75,000 cUSD paid via epoch (daily) rewards (minted in cGLD and converted to cUSD). The daily stipend is a factor of uptime, so offline validators will receive fewer rewards. Since validators secure the network, the idea is to minimize validator exposure to cGLD volatility.

Though stakers only bond their cGLD for three days, it’s different for validators, and that’s to ensure their bond is big enough to be slashed. How can a validator be slashed? For double signing, which also results in being removed from its validator group. How can opportunity for rewards be lost? Rather than slashing for downtime, a validator’s stipend will decay exponentially with increased downtime.

Validator stipend is a function of uptime.

What happens to the validator group if one of its members double-signs?

An amount is slashed from the offending validator, an amount is slashed from the validator group, and there will be a “damping factor” on future rewards for the validator group for a particular time period.

Any slashing event automatically removes the validator from the group, and the group chooses to re-add the validator without any delay.


Governance

Some of Celo’s parameters may be modified via on-chain governance (rather than by hard fork). These parameters will be stored and retrieved from smart contracts. We can expect features such as:

  • the ability to upgrade smart contracts
  • add new stable currencies
  • modify the reserve target asset allocation
  • change how validator elections are decided

Our understanding is that proposals will be selected for consideration and voted on by Celo Gold holders using a stake-weighted vote. The initial minimum proposal deposit has not yet been defined.

Option to veto/cancel a flawed referendum?

All proposals that are passed by Celo Gold holders also need to be approved by an ‘approvers’ account. The team thinks this will be a multisignature account controlled by the various committers for the project, reflecting the idea that the committers have similar duties and power to review and merge pull request to the codebase.

Fast-tracking Emergency Upgrades

What if a critical security issue is discovered? One initial method that the Celo team is working to implement is a mechanism for fast-tracking hotfixes. This mechanism is designed to help protocol developers get in touch with the current validator set, convince them of the need for a hotfix, and enable them to pre-approve a proposal that can bypass the standard governance process.

Avoiding Capture By Governance

Will there be measures to discourage vote-buying? An account holder can change their voting key at anytime, which may discourage vote-buying.

The account holder can optionally set a voting key for their account by generating a new keypair and passing the public key to a function in the contract. This allows the wallet keys to be held offline (eg. at a custody solution), while the account continues to participate in governance and validator elections.

Celo Foundation

One of the team members told us that the plan is to have Celo managed by the Celo Foundation, with C Labs continuing to contribute and build on Celo. Her hope is that others will also start contributing.

In terms of current support:

  1. Fellowships – for individuals who want to focus on one item
  2. Grants – for teams
  3. Polychain’s ecosystem fund – for entrepreneurs wanting to build on Celo

C Labs has Q4 plans to announce a grant program for those wishing to contribute in other ways (e.g. tools), and a bug bounty program. Once the network launches, there’ll also be an infrastructure fund funded by a portion of the block rewards and managed by the foundation. This will be used to help those running the network and contributing to it.

We don’t yet know if or how the foundation may participate in voting for validators and governance proposals.


Future

According to the team, foundation participation is still a work in progress, but details should be announced prior to Celo’s mainnet launch, planned for later this year or early next year (pending no major security or economic issues identified in audits). Decisions about how Celo will be governed and its (non-stablecoin) economic parameters are still being finalized, so we were fortunate to have such an early look at how Celo will work.

Keep in Touch

C Labs would love to receive more questions and suggestions for improvements. How? A good way to stay in contact is via their Discord server.

For announcements, follow them on Twitter: https://twitter.com/CeloHQ

If you have any follow ups, you can reach out to Claire in Staking Hub. The team is currently heading to SF Blockchain Week, so join their announcements channel if you’d like to meet them in person!


Special Thanks

Special thanks to Roman, Claire, Nam, and Kevin for spending an hour with Staking Hub to answer our many questions. Thank you to Andrew Cronk for co-hosting.

Thanks to our Staking Hub community for the thoughtful and impactful questions that inspired high-quality answers. Since you’ve read this far, you might as well join us over in the Staking Hub Telegram channel 🙂


Hopefully you found this useful. Feedback is always welcome! I’m on Twitter.