Voting for Validator Groups

An account can vote for up to 10 different validator groups (based on the maxNumGroupsVotedFor parameter of the Elections core smart contract). For this implementation of StakedCelo, consequently the protocol can only vote for up to 10 validators. Currently, votes are only cast for 8 validator groups.

The following principles guide the selection of the initial set of validators:

  1. Efficiency: For holders of stCELO: Vote for validators who support Celo most effectively. For the community: Ship fast and iterate towards better (and more complex) solutions later on.

  2. Neutrality: Cast votes in a comprehensible way, based on objective measures which are important for the protocol to work, or for the Celo ecosystem to function. Besides these core caveats, aim to stay neutral in the selection of individual validator groups.

  3. Credibility: Our approach should be verifiable by anyone based on on-chain data.

Based on these principles, establish rules to select the validator groups to vote for with StakedCelo:

A) Create a shortlist of eligible validator groups

i) Start with all validator groups of Celo as returned by the CLI (celocli validator:list)

ii) Of those, select all which have an uptime score of >98% [need for high uptime to receive maximum rewards]

iii) Of those, select the lower two tertiles of validator groups regarding number of votes received (specifically this means excluding validator groups with over 3,750,000 votes) [support the decentralization of Celo]

iv) Of those, select all which have had zero slashing incidents in the past [slashing incidents decrease rewards]

v) Of those, select all which have at least one validator elected [active validators needed to receive rewards]

vi) Of those, select all which have >2,000,000 votes as open capacity [voting only possible for 8 validators and a minimum of 16M votes to be cast by protocol should be ensured]

This results in the shortlist shared below. Note: The list was created according to these rules on July 28 and shared on the Celo forum on that day.

B) Randomly select a subset of the shortlist

i) Commit to a blocknumber (and share the hash prior to its mining) and use the randomness contract to generate a seed with that block as input for a random selection algorithm

ii) Use this script to select 8 validator groups randomly from the shortlist and then vote for those. We do select less than the maximum number of 10, such that we have two free slots available under normal conditions and retain some flexibility around changing votes.

Appendix A: Shortlist

Addresses of validator groups part of the shortlist, selected as described above:

0x0f66619058BB9675f3d394FCc2cE236a29901571

0x15Ed3f6b79F5Fb9Ef1D99D37314Dd626b3005F0b

0x2AF540161Cbeb58FdC99b159c76E390598860510

0x2c2B0f71d59B546B2CAfd222696589c13C3c325C

0x34649AdA2cB44D851a2103Feaa8922DedDABfc1c

0x3D451dd723797b3DE938C5B22412032B6452591A

0x3DcF2ED8dC84a63FfD2bfDc3CDb2fA0B1aeAfE5c

0x5402172E972b31Fc9F0383F53f45823Ab5037379

0x602B65795BCc64b2fb329AC004236E194f077158

0x614B7654ba0cC6000ABe526779911b70C1F7125A

0x69cd274C6AcBc08F664eD7B2D54aaB6615BC1d70

0x70FC0b021dFdBb9A106D1Ed8F35f59D3f23eCb7B

0x71dcC67baEECd9308e341359f70B782D9C3565b8

0x81AE1C73A326325216E25ff1af9EA3871195036E

0x81cef0668e15639D0b101bdc3067699309D73BED

0x82f8Bcf96f24BA60Ef041D192c7CE04C907E2fb8

0x8493BD3De67AC341D4cC11531f96a1A2cdBf29aD

0x8580dB53C3ebC56230662B771ceF2707E92Ef83A

0x89d5bd54C43dDd10905A030DE6Ff02EbB6c51654

0x95aE59515915D6c493a846aE022F93726652b50A

0xAcdf897493A6000dbe256791E8A2beCbb405FD4F

0xB33e9e01E561a1Da60f7Cb42508500e571afb6Eb

0xb35Be22BccB0dB9dC62967dcF15fEB97C20f854e

0xc24baeac0Fd189637112B7e33d22FfF2730aF993

0xc64DF5Be250264bf2888591D87cdeB13BFADC501

0xC7d5409fEe80B3Ac37Dbc111664dC511a5982469

0xc8A81D473992c7c6D3F469A8263F24914625709d

0xd25c6a9FEf4744E8d4F90Bf6bdFAF7686909d799

0xD72Ed2e3db984bAC3bB351FE652200dE527eFfcf

0xE075ba4b1dCAF75513118d7aA08A057c658842c9

0xE141831c2c1198d79B9Ff61cD97C3bAca7F071E0

Appendix B: Selected validator groups

Link to block commitment has.

Block 13816816 was selected, leading to randomness eeebfcc9bf72d7966eb5413ff5f83270e5dca2f67231f566c95fbccd7216ad38

which results with the following selection of validator groups:

0xc24baeac0Fd189637112B7e33d22FfF2730aF993

0xb35Be22BccB0dB9dC62967dcF15fEB97C20f854e

0x3D451dd723797b3DE938C5B22412032B6452591A

0x15Ed3f6b79F5Fb9Ef1D99D37314Dd626b3005F0b

0x34649AdA2cB44D851a2103Feaa8922DedDABfc1c

0xc8A81D473992c7c6D3F469A8263F24914625709d

0x81AE1C73A326325216E25ff1af9EA3871195036E

0xD72Ed2e3db984bAC3bB351FE652200dE527eFfcf

Last updated