Here’s a new take on DPOS voting that would lead to a more accountable and collusion resistant chain.
I call it implicit Delegated Proof of Stake. iDPOS.
Over the last few years I’ve become convinced of the many issues with voting. EOS certainly improves upon most voting systems but it’s still a system that makes it kind of difficult to vote someone out… Just like in the realm of politics.
This got me thinking. What if instead of voting for a block producer, we vote against block producers?
In the US, Congress has extremely low approval ratings but they are almost all reelected every time. What if the voters could explicitly vote out a bad actor instead of the false choice between two candidates?
To make it work the system needs a few changes beyond just the ability to vote against…
Here are the Changes to Make this Work
1 — Find a large group (let’s say 50) of honest, freedom loving, geographically diverse, competent BPs and make them the initial BPs. We’re starting with top quality BPs.
2 — By virtue of using the network, each token holder is then implicitly delegating their stake to these 50 BPs. Their consent/vote/delegation is implied until such a time that they explicitly withdraw their delegation. In other words, vote against one or more BPs.
3 — BPs are voted out when a certain percentage of all tokens are voted explicitly against them. (say 30% the approximate current voter turn out) It’s not a relative vote where if you get fewer against votes you win. It’s a threshold of total tokens. Each BP stands alone.
4 — BPs can, by majority vote, also remove a fellow BP for bad behavior. They may even be required to based on the BP agreement.
5 — Each BP is paid the same amount no matter the number of BPs or votes. This way they won’t vote out BPs to increase their own pay.
6 — If a BP is removed the remaining BPs vote in a new BP. If that BP turns out to act badly, then the BP who nominated the new, offending BP also loses their place. Previously voted out BPs can’t be renominated. The BP that initiates the removal of a BP can not also nominate that BP’s replacement.
What does this do?
This removes the incentive to collude via voting a large stake because one whale can’t vote themselves in.
It increases the incentive for voters to act because the threshold is low enough to actually make your vote count for stopping abuse and it’s less work. Instead of researching or randomly picking 30+ producers it’s much easier to research the one who is currently accused of wrongdoing.
It aligns BP incentives for decentralization they are now competing for how honest and transparent they can be.
There are two ways to remove a bad BP that’s an improvement.
Removing a BP can’t be blocked by whales unless they have 71% of tokens.
Colluding to become a BP becomes much harder because you first have to get a BP removed and then you have to collude with current BPs for them to appoint you and they would be risking a lot to vouch for you. All the incentives align against this.
It also makes vote buying more difficult.
I’m just now developing this idea so there may be more to come. That being said the main risk I can think of is that of a false report of BP collusion that gains enough traction in the community that an innocent BP could be voted out without due process. That’s a risk I think everyone could probably live with. However, there could be some way to mitigate it for example having arbitrators or agencies involved as a final approval.
For example, the threshold could be 20% of votes with arbitrator investigation and approval that they did in fact break their BP agreement OR 40% of votes will override.
note: One other variation is that the BP pay could be reduced based on how many votes they get against them but the pay of other BPs remains the same. This could be another mechanism of voter control over BPs. Even if they’re not voted out their income could be reduced. I’m not a big fan of this approach, however.
Thoughts? Comment below.
[update] Some clarifications:
- There would be 21 active BPs and the rest would be back up. However, they would swap places at regular intervals to allow for down-time etc. So on average each BP would be active for the same amount of time.
- There’s no stratification of BP’s you’re either in the 50 or you’re not. The number of downvotes only matters when it reaches the threshold.
- The threshold would have to be exceeded for 30 days before a BP is kicked out allowing them time to defend themselves.
- Limit it to 5 BPs per legal jurisdiction.