[Suggestion] Veto power given to account holders (one account, no staking-one vote)

The debate around the voting mechanism is not new. However, it is only as time progresses that you start to see how various things play out in practice. Before I continue, I would like to point out three great threads on this topic, in which the OPs and the commenters all make terrific arguments:
1. https://forums.eosgo.io/discussion/1498/arguments-against-voting-based-on-unique-id
2. https://forums.eosgo.io/discussion/664/problems-of-30-votes-per-eos
3. https://forums.eosgo.io/discussion/739/brainstorming-a-multi-cameral-legislature-for-eos

The main issue I think needs addressing is the fact that there is clear resentment in the community around certain BPs who are not fulfilling their duties, yet keep getting voted in by whales and presumably other BPs. And another is the fact that even if all us "small fry" were to throw our weight behind a vote against some BPs, it wouldn't even make a dent (see http://eos-bp-votes.dapptools.info/s/api/block-producer-votes-stack-html/1/30 for reference). This doesn't give the community of people who hold smaller amounts (read "non-whales") a feeling that they have a say in what happens, and voting (as ineffective as it feels to them and possibly is) is their only recourse.

I must say, I agree with the points made in favor of having 30 votes and in the method put in place by EOSIO. However, there ought to be a way for the "masses" to counter the "stake" in some way so that it's not purely a whale play. In reviewing the arguments in favor and against, I would like to propose a solution:

Have 2 voting mechanisms. One, to vote in favor of your BPs, 30 BPs per account multiplied by the amount you stake (current system). And the other (a new addition), to VETO block producers, where each account gets to choose any or all of the top 21, but not multiplied by the amount you stake. The veto can go into effect if 67% (or some other threshold) of the account holders agree to kick the BP out.

Vetoing a BP would be a rare occurrence. You'd really need a groundswell of people who feel the injustice of having the BP in place to bring this into effect. And if that many people really do dislike the BP that much to veto them, it would be wise PR to enable it. This is the age-old libertarian ostracism argument, where if enough people in the community don't want to do business with someone, it is a peaceful, nonviolent way of letting them know they are not welcome. Just because you have a large stake and some rich buddies, it doesn't mean you have a right to be a block producer.

In this way, the voting-in mechanism remains intact, as envisioned by Block.one but there is a way for the masses to make their voices heard and kick out BPs who are deemed toxic for the community. The community, after all, is just as important a component here. Maybe you limit it to accounts with over 100 EOS to ensure only those with skin in the game can veto, and possibly prevent some element of a sybil attack, but this is a way to give the masses a voice for extreme situations.

Please let me know your thoughts.


  • Thats not a bad way to handle the whales. Not sure how they could implement it though.

    I was thinking that the voting system needs to be changed as well... I have 2 different methods that I'd like to suggest.

    (1) If 100% of the votes are not casted, now that the blockchain has launched, there could be a calculation in which makes it seem like 100% of the votes have been staked for voting... Kind of like when there is a hard test in school and the highest grade was 80 and majority of the people did not make a passing grade, all scores get increased by 20. Talking about votes on EOS, for simplicity lets say that 50% of the votes are casted. Get the average amount of EOS in each account, and since 50% of EOS have been staked for voting, take the average amount and add this amount to each account to get 100% of the votes. At 25% of EOS staked for voting, you would get the average and multiply it by 3 and add that amount to each account which has voted.

    (2) EOS could change the voting system by enabling every account to (a)vote by staking EOS (current method of calculating votes) and then (b)count the total number of accounts (maybe once a month) and divide the number of EOS in circulation by the number of active accounts. Add (a) + (b) to get each account's number of votes. Kind of like the House and Senate in the US.

Sign In or Register to comment.