How the EOS Referendum System works

EOS Nation
5 min readJan 11, 2019

--

The EOS Referendum system is live, and for the first time ever, token holders have the opportunity to directly influence the direction of the network.

After months of hard work by members of the community, 15/21 top block producers have approved the deployment of the referendum smart contract to the eosio.forum system account.

Why does EOS need a referendum system?

EOS is a community-governed blockchain. Stakeholders launched it in June using the weight of their tokens to elect 21 Block Producers (BPs) to operate the network. Those BPs are the organizations that run the infrastructure and hold the keys to implement changes to the hard-coded rules that make it all work so magically. They’re held accountable through continuous voting and can be replaced by new organizations at any time.

As the network continues to evolve, BPs will be responsible for implementing the changes that make that evolution possible. And that might involve making some tough decisions with severe implications. Beyond the BP elections, there’s currently no sure way to gauge token holder appetite for change. While the mechanism doesn’t exist, article XI of the Constitution makes it clear: token holders have the right to vote for changes to the network directly through a referendum. And that’s where the referendum system comes in.

What it is

We’re providing the community with a tool to enable EOS token holders to vote on proposals with their staked tokens. The referendum system is made up of a forum smart contract for submitting proposals and casting votes, a tally system for counting the EOS staked towards each ballot option, a voting portal UI with support documentation to facilitate easy voting, and support for integration with wallets and alternative UIs so token holders can participate in the interface they’re most comfortable with. It’s all open source and available on GitHub.

What it’s not

We haven’t developed a process for creating or filtering proposals, nor have we defined any specific rules for how referenda should be ratified. We’ll provide suggested best practices, but we can’t control how the tool will be used, nor do we have the authority to impose our own rules outside of what’s outlined in article XI of the EOS Constitution. It’s up to the community to craft proposals and vote on them, and signatures from at least 15/21 top BPs to ratify and implement passed proposals. Thanks to the beauty of DPOS, a separate group has formed to develop proposal best practices of their own. You can find the Ballot Craft group on telegram.

How it works (in a nutshell)

  • Proposals submitted through the eosio.forum smart contract can be displayed and voted on in any UI that chooses to display them
  • Token holders and proxies can vote for proposals from their preferred UI (see supported UIs above)
  • The weight of a vote is determined by the amount of EOS staked towards CPU or NET at the time the vote is being counted
  • The vote is counted continuously until a designated threshold is met or until the proposal expires
  • It’s up to a vote of 15/21 top BPs to confirm if a threshold has been met and to implement the will of token holders
  • 10 minute delay for votes to reflect in the tally and UI

Clarifications:

  • Vote will be used to describe voting using the referendum contract, not a vote for a Block Producer
  • Total weight staked is the sum of CPU and Net bandwidth that a user has staked towards themselves or towards another account (but that they still are in control of)
  • When a user has bandwidth staked towards their account by another account, they are not in control of that voting stake
  • Votes (and removal of votes) are immediately registered on chain and are effective immediately
  • Votes are not subject to the relative-strength decay seen on Block Producer voting

Collaborative effort

EOS Nation was honoured to participate in this evolution of EOS governance and would like to recognize the members of the EOS Referendum Working Group for their contributions:

eosio.forum smart contract and EEP

  • Josh Kauffman (EOS Canada, dfuse)
  • Alexandre Bourget (EOS Canada, dfuse)
  • Matthieu Vachon (EOS Canada, dfuse)

Vote tally system

  • Denis Carriere (EOS Nation)

EOSvotes.io UI design and development

  • Steve Floyd (BitGate, Fractal)
  • Nathan Rempel (KARMA, GenerEOS)

DPoS, smart contract, and wallet integration support

  • Aaron Cox (Greymass)
  • Michael Fletcher (EOS42)
  • Rohan Abraham (EOS Authority)

Content strategy

  • Anna Taylor (Fractal, Empower Women Proxy)

Project management

  • Daniel Keyes (EOS Nation)

Additionally, dozens of developers have jumped onboard to support the effort by integrating the referendum system into their own wallets and block explorers. Have a look below to see if your favourite wallet supports referendum voting.

Special thanks to Martin Breuer (EOS Nation) and the WEOS working group for organizing the get-out-the-vote campaign

It’s now up to the community — it will take a solid proposal to attract at least 15% participation of tokens for a referendum to pass. So get engaged and help us make history on the blockchain!

EOS Nation is a top 21 block producer on the EOS blockchain. Let’s connect:

Website | Telegram | Twitter | Facebook | Steemit | TRYBE | Bihu 币乎

Help us continue to add value to the EOS ecosystem. Vote eosnationftw for BP

--

--