The Great Celo Stake Off: The Details

Note: If you have any questions, comments, or feedback about The Great Celo Stake Off, please add a comment here, or if it concerns a private matter, contact the C Labs team (the “Company” or “Team”) on the Discord #stake-off channel.

Overview

The Great Celo Stake Off (“TGCSO”) will run on Baklava, Celo’s incentivized testnet. TGCSO will operate in phases, with each phase focusing on a different part of the protocol or infrastructure to test. Baklava is an early, partially audited release of the Celo Protocol (see Terms and Conditions for more details).

The objectives of TGCSO include building validator operational experience and establishing security best practices. It also provides contributors a means of earning what will be Celo Gold on the Celo Protocol (“Mainnet”). Importantly, TGCSO will not be focused on testing Proof of Stake design through adversarial processes, nor will it isolate and test every variable that may affect Celo’s cryptoeconomics.

What is TGCSO?

TGCSO is inspired by the many cooking shows and competitions (see announcement). In TGCSO, Eligible Participants will collaborate and compete to earn as many Baklava Testnet Units (“BTUs”) as possible.

There are several ways to earn BTUs (subject to Terms and Conditions). Participants can do any combination of these:

  1. Earn epoch rewards and transaction fee BTUs by running a validator and/or a validator group
  2. Earn transaction fee BTUs by running one or more full nodes
  3. Amplify rewards by completing the “ Master Validator Challenge”

Participants may also have the chance to receive Mainnet Celo Gold by completing additional “Community Challenges.”

There is also a grant program for those interested in building tools and services on the Celo Protocol and a bounty program to contribute to the Celo code and to flag issues. The grant and bounty programs will continue to exist after TGCSO and into Mainnet launch.

Winners and Rewards (all subject to terms and conditions)

The winners will be the top three eligible Participants (or Participant Entities) with the highest number of BTUs at the end of the final phase of TGCSO (phase 3). A Participant Entity is one or a set of validator addresses associated to a team.

This Baklava version of the Celo Protocol (“Protocol”) will have testnet Celo Gold (“cGLD”) and testnet Celo Dollar (“cUSD”). Importantly, these testnet units (cGLD and cUSD) are not the assets that will be live on the Celo Protocol Mainnet. Rather, these testnet units will enable the cooperation and competition that will result in final BTU balances that will be the basis for ranking Participants.

How Participants will be awarded BTUs:

  • First, all addresses associated with the Participant Entity must be identified (through the signed ‘Identity Claims’ recorded as part of setup, details on how to do so will be shared separately)
  • For each address, the BTU balance is calculated at the end of TGCSO on Jan 21st 1600 UTC as follows:
    • The cUSD balance is converted to cGLD at the exchange rate provided by the Baklava Oracle at the end of The Great Celo Stake Off. This value is summed together with the address’ cGLD balance and any cGLD deposited with the LockedGold contract.
    • The balances of each address are summed together to calculate a total balance, to which is added any boosting multiplier (see the “Signature Challenge” section, below) which results in the total balance. This is the total number of BTUs the Participant has earned.

Final balances of BTUs are calculated using the Baklava Oracle exchange rate at 1600 UTC on the final date of the contest, Jan 21st 2020, which will be published on TGCSO Forum.

Mainnet Celo Gold Rewards

Subject to the Terms and Conditions, the top 50 eligible Participant Entities with the most BTUs at the end of TGCSO may receive the following number of Celo Gold Units that will become Celo Gold at Mainnet launch of the Celo Protocol:

  • 1-3rd place: up to 60,000 Celo Gold Units
  • 4th-10th place: up to 40,000 Celo Gold Units
  • 11th-25th place: up to 20,000 Celo Gold Units
  • 26-50th place: up to 10,000 Celo Gold Units

If there are ties, rewards would be rounded upwards. For example, if there are two Participant Entities that have the same number of BTUs competing for third place, they would both be awarded up to 60,000 Celo Gold Units. Fourth place would be “void” and the remaining fifth to tenth place Participant Entities would receive up to 40,000 Celo Gold Units each.

Any/all Celo Gold Units received as part of TGCSO may be subject to lockup periods at Mainnet launch of the Celo Protocol. Further, to receive (and not forfeit) Celo Gold Units and Celo Gold, you be eligible to receive such units and you must provide certain information further described in the Terms and Conditions.

Who is it For?

Baklava Testnet Participation

Technical users who expect to participate in the Mainnet (e.g. validators, full nodes, and core developers). You must be comfortable with your operating system environment and the command line interface. Prior experience running a node on other cryptonetworks is ideal but not necessary.

On Tuesday November 26th at 1600 UTC, we’re hosting a webinar to explain Celo’s Proof of Stake and on Thursday December 5th 1600 UTC we’re hosting a Validator Community introduction to TGCSO with Q&A. Sign up here.

Community Participation

Anyone wishing to contribute to the community form code contributions, to completing security bounties, and creating educational content. This is for those who would like a chance to receive Mainnet Celo Gold without having to run a Baklava testnet node. See “Community Challenge” below.

Anticipated Timings

Any adjustments in timing will be posted to the Forum.

Phase 1 (Dec 4th @ 16:00 UTC): “Learn to Cook” - Gain Operational Experience

  • Baklava launch: dry run warm-up period
  • Asset placeholders will have no value: they will not count towards TGCSO and are not eligible as BTUs
  • The objective of this phase is to allow Eligible Participants to get comfortable with the protocol and and their operating environment before TGCSO starts

Phase 2 (Dec 11th@ 16:00 UTC): “Cook the Basics” - Test Attestations

  • Network reset: game starts
  • Test the Attestation Service (details will be shared at a later date)
  • Eligible Participants may accumulate BTUs counting toward leaderboard ranking

Break (Dec 21st - Jan 5th): “Take a Vacation”

  • TGCSO on hold - BTUs and cGLD/cUSD exchange paused

Phase 3 (Jan 6th @ 16:00 UTC): “Become a Master Validator” - Test OPSEC & Governance

  • Test validator OPSEC and performance (see “Master Validator Challenge” below)
  • Test hard forking, hotfix participation, and governance proposal process
  • Eligible Participants may continue to accumulate BTUs, counting toward leaderboard ranking
  • Last day to participate in TGCSO is expected to be Jan 21st 1600 UTC, winners will receive communications from the Company thereafter

IMPORTANT: Dates and scope may change. Although not required, we recommend registering via form to stay up to date (privacy policy terms will apply). Also, note that the transition to each phase may include a full network reset, a hard fork, or an upgrade.

Communications

Leaderboard: The leaderboard will be available on celo.org/build. It will display the “Final BTUs” per eligible Participant or Participant Entity following the “Winners and Rewards” formula above. By default the leaderboard will display the registration Celo network address. If a team would like to aggregate several addresses under one entity, this can be done via Celo metadata. Details on how to do so will be shared separately.

Updates: Updates will be communicated here, on TGCSO Forum. For those who’ve registered, an email will also be sent out to the email address used at registration. Participants are responsible for staying up to date with TGCSO Terms and Conditions.

Questions: Please ask your questions on TGCSO Forum so that others can also benefit from them.

Discussion: For discussions, join the Stake Off Discord channel. For general inquiries, we encourage you to post all your comments and questions here on the forum to remain inclusive and to avoid communication confusion. Though we would prefer discussions to happen here, key points discussed in Discord and a summary of GitHub activity will be summarized weekly here on this forum.

Hardware & Infrastructure Requirements

Required:

  • Access to high availability network and a secure data center
  • Baklava testnet Celo Gold (cGLD) to lock up as slashing stake, see faucet instructions
  • Keeping your node up to date with the latest Protocol version
  • Running an Attestation Service

Highly recommend:

  • For validators:
    • Modern server-class hardware with one SSD and one HDD available, running a Linux distro with security patches applied, and a symmetric high bandwidth, low latency Internet connection, located in a physically secure facility
    • A second bare metal machine, VM, or container, co-located with the validator or deployed in a cloud environment and connected to it over a VPN, to use as a sentry node
    • A third similar instance on which to deploy the Attestation Service
    • Possibly recommended later: A Ledger Nano X hardware wallet
  • For full nodes:
    • A machine, VM or container with one SSD and one HDD, running a Linux distro with security patches applied, and a symmetric high bandwidth, low latency Internet connection

Registration & Faucet

To participate, you’ll need a Keybase account and/or to register via the registration form below. Each eligible Participant Entity (not address) is allowed to get faucteted at most 24,000 cGLD for the duration of TGCSO. Entities that Sybil themselves to bypass this, or engage in other actions to bypass TGCSO rules, will be disqualified, as specified in the Terms and Conditions.

Keybase registration:

  • Use this method if you have a Keybase account that:
    • Was created before Oct 1st 2019
    • Has at least two external accounts verified
  • Pros: you can self-faucet yourself 24/7
  • Cons: you aren’t registered for TGCSO email updates
  • Details on how to do so will be shared separately.

Online registration form:

  • Use his method if you don’t have a qualified Keybase account (see above) and/or if you’d like to be added to TGCSO mailing list
  • Pros: don’t need a keybase account and you’re subscribed to TGCSO email updates
  • Cons: need to wait for the C Labs team to review your registration and faucet cGLD to you
  • If you’ve registered via the form and need to change your contact details, please contact a member of Team on Discord

Proof of Stake Requirements & Rewards

Background Information

Before jumping into the details, it’s worth noting that Celo’s proof of stake (“POS”) differs from other protocol designs in several important ways. As in other protocols, the native asset, Celo Gold, enables all participation in protocol governance. Different from other protocols, in the Mainnet (and as modeled in Baklava):

  1. Celo Gold holders (called Hoglers) vote but do not delegate their Celo Gold to validators, which means minted Celo Gold rewards go directly to the Hogler accounts, entirely bypassing validators
  2. To earn rewards, Hoglers must vote for a validator group, not individual validators
  3. A validator must be part of a validator group to get elected and to start validating
  4. Validators earn a flat epoch reward in Celo Dollars. Receiving a reward in Celo Dollars has the advantage of helping validators cover operating costs

A detailed explanation of Celo’s POS can be found in these two blog posts:

Baklava Testnet Details

TGCSO POS requirements and epoch Baklava testnet rewards:

  • Epoch duration: 1 hour (24x faster than Mainnet)
  • Lock-up requirements:
    • Validator group registration lockup: 10,000 cGLD per validator in the group, for at least 60 hours
    • Validator registration lockup: 10,000 cGLD, for at least 60 hours (vs. 10,000 cGLD, 60 days on Mainnet)
  • Max. number of validators in a group: 5 (same as Mainnet)
  • Max. epoch Baklava testnet reward: ~205 cUSD / validator weighted by performance score (same as Mainnet)
    • cUSD and be exchanged for cGLD at any time via the Exchange contract
    • A single C Labs Oracle acts as the source of the cUSD/cGLD exchange rate, which will have low volatility to limit the benefit of arbitraging the Exchange in TGCSO
  • Total number of validator slots:
    • Nb validators phase 1 = 100
    • Nb validators phase 2 = min(nb valiators phase 1, 100)
    • Nb validators phase 3 = 80%* (nb valiators phase 2)
  • Faucet amount: 24,000 cGLD per entity (feature not available on Mainnet)

Challenge Rewards

There are two types of challenges:

  1. Master Validator Challenge: boost your BTUs by completing the security and infrastructure challenge.
  2. Community Challenge: earn the chance to receive Mainnet Celo Gold (cGLD) by participating in community challenges such as contributing to code or creating content.

Note that any Mainnet Celo Gold from the Community challenge are awarded at the Company’s discretion. As provided in the Terms and Conditions, The Company reserves the right to modify or revoke any awards.

1. “Master Validator Challenge”: Validator OPSEC & Performance

This is a ~3 hour remote audit conducted by the Team. Audit results will be captured on a public validator registry. Each entity (a validator or a validator group with several validators) can apply for only one audit during the term of TGCSO.

If you ‘d like to get audited sign up here. Audits will begin in phase 3.

To participate in the audit, you will complete a list of tasks where each completed task will award you points. Completing the entire list will add up to 120 points. Your multiplier boost will be the number of points you earn turned into a percentage. For example, 20 points earned by completing tasks will be treated as a 20% boost. This boost amount will be applied to your entity’s total cGLD balance at the end of TGCSO (Jan 21st 2020 1600 UTC). For example if you have 1000 cGLD at the end of TGCSO and a boost of 20% your total balance will become 1000*1.20 = 1,200 cGLD or a total of 1,200 BTUs (for the leaderboard).

Entities who obtain a boost equal to or above 80 points qualify for the “Master Validator” seal. This means that they have demonstrated professional levels of operation.

Master Validator Challenge audit checklist:

  • Validator in co-lo data center, with:
    • Up to 2 points for redundant power
    • Up to 2 points for redundant cooling
    • Up to 2 points for redundant internet
    • Up to 2 points for cage or gated access
    • Up to 2 points for security camera pointed at server rack
  • Up to 10 points for separate proxy instance over VPN or private network and Validator networking locked down
  • Up to 10 points for an Attestation Service instance
  • Up to 10 points for appropriate OS patch levels
  • Up to 10 points for a configured monitoring and alerting setup
  • Up to 10 points for configured intruder detection setup on Validator
  • Up to 10 points for passing network bandwidth test ( 32 Mbps upload, 32 Mbps download)
  • Redundancy
    • Up to 10 points for hot standby validator machine
    • Up to 10 points for hot standby hardware wallet
    • OR up to 30 points for a fully redundant replica-based setup: three or more validator machines in three different data centers using threshold signatures doing 2 out of 3 based signing
  • When available: Up to 20 points for use of hardware wallet (Ledger Nano X) for signing, local or remote

2. “Community Challenge”: Code, Docs, & Community Contributions

Those wishing to contribute in other ways can earn the chance to receive Mainnet Celo Gold (not Baklava testnet Celo Gold, cGLD) by completing certain tasks. See list below.

Ways to contribute:

  • Up to 5-500 Celo Gold Units for getting a PR approved on Github
    • Contributing to documentation (creating, correcting, translating)
    • Contributing to tests (improving coverage)
    • Contributing to code (optimization, cleanup, extend feature, new feature, bug)
  • Up to 1-10 Celo Gold Units Community helper (answering questions on discord and forum)
    • Top helpers may be awarded a forum & discord badge if they earn more than 100 Celo Gold Units over the duration of the TGCSO
  • Up to 30-300 Celo Gold Units Create educational content (blog post, podcast, video) - extra points if distributed in non-crypto media channels

Celo Gold Units will be converted to Mainnet Celo Gold following the Terms and Conditions.

The process to submit and track community contributions will be shared separately.

Security Bounty Program

Celo’s security bounty program is hosted on HackerOne. A link be published at phase 1 launch.

Here is what you can expect:

  • “Eat for free” - Double spend by getting the clients to accept a different chain (high)
  • “Two for one” - Double spend by validating malicious blocks (medium)
  • “Send it back!” - Tamper/manipulate blockchain history to invalidate transactions (low-medium)
  • “Cook you own food” - Cause network to mint tokens to own account (high)
  • “Start a Food Truck” - Undermine consensus mechanism to split chain (high)
  • “Cut in Line“ - Censorship (e.g. on votes) (high)
  • “Steal a waiter’s tray that has food on it” - Steal tokens from node (high)
  • “Steal a client’s plate” - Steal tokens from phone number (high)
  • “Prevent waiters from serving clients” - Prevent node from accessing the network (low-medium)
  • “Steal food without chefs, waiters, or clients noticing” - Abuse bugs in economic system to defraud other participants (e.g. avoid transaction fees to full nodes) (high)
  • “Prevent chefs from cooking” - DDOS attack (high)
  • “Shut down the restaurant” - Shutdown network (high)

Grants

These will be communicated on celo.org at the launch of phase 1.

Here’s a preview of potential technical grant categories (subject to change):

  • Protocol tools:
    • Validator tools (network monitoring & performance management)
    • Governance tools for Celo Gold holders (voting, seeing rewards, notice period etc.)
    • Stability protocol & reserve read-only dashboard
  • Contributions to Celo core (i.e. celo-blockchain + celo-monorepo):
    • Additional forms of on-chain attestations
    • R&D

Rules

Disqualification

See the Terms and Conditions for more details. As a short summary, the Company will disqualify and if necessary disquality Participants along with their accounts, validators and validator groups who:

  • Undermine the goals of the game, which is to test OPSEC (and strategies for manipulating the incentive system) - this excludes security bounties (see list above)
  • Destroy or incur any damage to other TGCSO participants physical property

Prohibited behavior

Exploiting protocol and application level bugs in TGCSO is prohibited. Any bugs that are discovered should be reported to security@celo.org, or through the bug bounty program on HackerOne.

Transferring cGLC or cUSD between accounts controlled by different Participants is prohibited. Exchanging, locking up, or otherwise deploying funds received from accounts not controlled by you is prohibited, whether manually or via a script or bot. If you receive funds from another Participant, you should immediately notify the Team at stakeoff@celo.org.

Participation

Company employees, contractors, fellows, and anyone currently or previously associated with the Company may participate in TGCSO but may not be listed on the leaderboard and will not eligible to receive Celo Gold Units.

Terms & Conditions

Read full Terms & Conditions here.

5 Likes