Prepared by Daniel Keyes (EOS Nation)
New feature added: Read the August 9 status update
Over the past number of weeks, a decentralized group of individuals have been working together to deliver a referendum system for the EOS blockchain. Most of these individuals are members of competing block producers. But we’ve come together to cooperate under a shared vision. I’ve done my best to capture our progress towards that vision below.
EOS has the potential to change the world. But it’s seriously limited in its infancy — like a newborn dependant on its mother. Block.one has given birth to EOS, but it’s up to the community to raise it to reach its full potential.
- Our governance layer is deficient and without funding
- Our interim constitution needs amending and ratification
- Our worker proposal fund, currently collecting about a million dollars per day, is sitting idle with no method of distribution
- Our stakeholders have no means to vote on solutions for these issues
Get a “good enough” referendum system to market as soon as possible so that token holders can start shaping the future of EOS and unlock its full potential. We’re not striving for perfection, we’re aiming for something better than what we have today. This will enable us to unlock value in the short term, while we test, learn and iterate towards perfection in the long term.
- Conform to article XI of the EOS Constitution¹
- Limit friction for voting to maximize participation among both technical and non-technical token holders
- Introduce some friction for proposal submission to prevent ballot spam and voter overload and apathy
- Decentralize as much as possible
Coming soon (MVP 1)
We’ve already begun building our first iteration and plan to start testing shortly.
Our fist iteration will include the following features:
As an EOS token holder, I need a way to propose changes to EOSIO so that they can be presented to token holders for voting.
Submission through eosforumdapp:
- Any token holder can submit a proposal on chain to be voted on by the community
- No one needs permission to put forward a proposal, so long as they can cover the cost of RAM to store the proposal
- Any UI can display any proposal the developer chooses
- It will be up to the proposer to convince UI developers to display their proposal for voting
- Each proposal has a unique hash that can be verified prior to voting
Designated account for BP proposal submissions:
- Trusted account that all UIs can reference for referendum proposals
- Controlled by a vote of 15/21 elected block producers
- UIs that reference this account will automatically display all proposals put forward by BPs
As an EOS token holder, I need a way to vote on proposals so that I can have my say in the governance of the network.
Voting through eosforumdapp:
- Any EOS account can cast a vote through eosforumdapp
- Votes can be cast through any wallet or UI that supports it
- The voter’s EOS account name and vote selection are propagated through the chain
- Results can be tallied and displayed in any UI that supports it
As an EOS token holder, I need a way to track the progress and status of a referendum so that I can be informed of the outcome.
MongoDB tally application (off-chain):
- Tallies the number of tokens staked towards each proposal choice at a given time
- Since the tally is off-chain, you can’t just query the chain for results. UIs will need to feed from custom-built tally-results endpoints
As an EOS token holder, I need a way to verify the outcome of a referendum so that I can be confident that the results are fair and accurate.
Vote snapshot application:
- Snapshot of state every 7200 blocks (each hour)
- Allows anyone to look back at how many votes were cast for a given proposal option during each hour throughout the duration of a referendum
As an EOS token holder, I need block producers to honour the outcome of a referendum.
Ratification is managed by 15/21 elected BPs:
- It will be up to the elected block producers to implement the will of the token holders. This is the nature of DPOS.
Decentralized user interfaces
As and EOS token holder, I need to be able to interact with proposals in my interface of choice so that I can avoid unnecessary learning curves and exposing my private key to new risks.
The following interfaces have committed to supporting this referendum implementation:
- EOS Authority
- EOSvotes.io (New referendum portal: read more)
Coming later (MVP 2)
- Tally votes on chain with nodeos plugins: read the Greymass proposal
- A more automated way for UIs to determine which proposals to display, which is informed by token holders
- Solicit feedback from the community (Join the conversation on Telegram)
- Complete building MVP 1
- Test MVP 1 with mock referendum
- Hold the first EOS referendum
Thanks to everyone who contributed in the Referendum Smart Contract telegram channel and in our Zoom calls. In particular:
- Michael Fletcher (EOS42) for his work on our first smart contract iteration
- Alexandre Bourget (EOS Canada) for his work on eosforumdapp
- Denis Carriere (EOS Nation) for his work on the tally application
- Steve Floyd (EOS Tribe) for his work on the EOSVotes UI and community outreach
- Aaron Cox (Greymass) for his DPOS expertise and commitment to integrating into the Greymass wallet
- Nathan Rempel (GenerEOS) for EOSvotes.io development and commitment to integrating into EOStoolkit.io
- Josh Kauffman (EOS Canada) for his insight into worker proposals and help with documentation
- Sharif Bouktila (eosDublin) for recruiting volunteers and getting the ball rolling
- Thomas Cox for his guidance and encouragement
- Daniel Keyes (EOS Nation) for project management
¹Article XI — Amending
This Constitution and its subordinate documents shall not be amended except by a vote of the token holders with no less than 15% vote participation among tokens and no fewer than 10% more Yes than No votes, sustained for 30 continuous days within a 120 day period. ↑