The EOS Referendum Working Group is pleased to invite the EOS community to join us in testing the beta release of our referendum system.
The group met on Thursday, November 8 for a go/no-go vote following a week of hard work on closing outstanding showstopper issues. While there’s still work to be done to get the tool ready for mission-critical referendum proposals, we’ve reached a point where we have a working product that’s ready to be put through its paces by the broader community.
During the beta period, we’ll be focused on testing and refining. We’ll be monitoring the results of our tally tool and comparing them with snapshots to ensure consistent accuracy. And we’ll continue to chip away at smaller open issues in both our tally and UI. In the meantime, we’ll be soliciting feedback from the community to learn how we can improve the tool and iron out any issues we might have missed on our own. Critical issues will be prioritized to be closed before our full launch, less serious issues will go onto our backlog for future iterations.
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.
Here is a Video walkthrough from Daniel Keyes and Thomas Cox
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
Known issues to resolve before full release:
– 10 minute delay for votes to reflect in the tally and UI
– EOSvotes.io is available only in English
– No alternative tally exists currently (we’d like to see others from the community independently validate results by running their own tally)
How you can help
Let’s see if we can break it. We invite all token holders to play around with our beta release by voting for some of the mock proposals that have already been submitted. You’re also welcome to try submitting some proposals of your own. But we don’t recommend attempting to propose anything of material consequence until it’s been put through its paces. In the meantime, please share your feedback in our telegram channel.
This is the fourth in a series of updates on the EOS Referendum System. Catch up on the others below:
Expected Voting Behaviours
We wanted to outline some possible voting scenarios and what the expected outcomes should be, so that it is clear what a user should expect based on their voting status.
– Vote will be used to describe voting using the referendum contract, not a vote for a Block Producer
– By default, the value 0 should be used for a negative vote (no) and 1 should be used for a positive vote (yes)
– 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
– The change to the tally amount may take up to 10 minutes to register through the current tally mechanism
– 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
– To abstain from a vote, a user will need to utilize the command line, as there is no UI (yet) that allows this kind of vote. (An abstention will be necessary if a user wants to proxy their BP vote but not have any vote registered on a particular proposal)
– For the purpose of this document, we will only look at how the “staked” field of the voting JSON is affected, as that is a sum of the “accounts” and “proxies” fields (see example output here: https://s3.amazonaws.com/api.eosvotes.io/eosvotes/tallies/24697186.json)
– For the purpose of this document, we will only outline 2-option votes
If you have any other test cases that you would like defined above, please reach out and let us know, and we will add them in.
The Referendum System is a collaborative effort by
EOS Nation is a standby block producer on the EOS blockchain. We can be found: