My Thoughts on Steem DPoS
Hi everyone, this is a longer and more detailed response to https://steempeak.com/hive-177956/@rycharde/proposal-for-new-dpos-for-steem-decentralised-governance
Meme by @decentralizd found here : https://twitter.com/Decentralizd/status/1236365249390858240
I hope you don't mind me using it
As we just saw with the Justin Sun acquisition of Steemit Inc. and the interference of the exchanges in the governance of the Steem blockchain, the Steem DPoS is prone to hostile takeover. Whether the mobilization of the community turned the tide in this, Binance recasting witnesses' votes would have rendered useless all that mobilization.
There needs to be a real long term solution to that problem.
My idea would be an hybrid system.
Put a Security Council in place (UN-style)
Replace the current TOP 20 witnesses by only a TOP 4 with extended powers. By extended, I mean that each of theses 4 witnesses will have a veto right on any potential hard fork.
Don't change the system of stake-voting for this consensus, just modify the parameters : maximum of 4 votes per user, and the SP is divided by the number of votes.
This way, any big stake holder or the Steem community (whatever this means) or just any special interest group with enough SP would be able to vote at least 1 witness into this TOP 4 and hence have a veto right over any hard fork.
For the rest, use the Athenian's sortition system
Increase the number of consensus witnesses (something between 50 or 100, let's call it X).
Distribute block rewards equally between those witnesses (+ ofc the TOP 4).
These witnesses won't be chosen via stake-based voting but by sortition (selection by lot). Every given period of time (let's say a week for the sake of this example), X consensus witnesses are chosen among all individuals running a witness node. After that week, new consensus witnesses are chosen randomly, and so on every week.
The TOP 4 remains as they are elected through stake-based voting.
To limit potential abuse of that system, put a few things in the code :
- The witness node can not be on the same hardware as another one,
- The witness node can not have missed more than Y blocks in the last Z days,
- The account must be at least W weeks old,
- The witness node must be operating since at least D days,
- and potentially other things.
This way, you ensure people who might potentially get elected to be temporary consensus witnesses have the best interests of the blockchain at heart. But most importantly you make sure no hostile takeover or power abuse by consensus witnesses can take place.
How all this prevent a hostile takeover ?
You can still takeover the TOP 4 witnesses if you get enough stake, but this will only give you veto right on any hard fork (and no interest of controlling the 4, as each one of them has an individual veto right, and you would be diluting your SP making it easier for another group to take back control of at least 1 TOP 4 witness).
If you want to have the majority needed in the consensus for any soft / hard fork, you will need to run an awful lot of witness' nodes during a long period of time (to fulfill the requirements) and get enough of your witness' nodes elected at the same time to have any power over governance.
This can't go unnoticed, so if it ever happens, people opposing the new actor will have more than enough time to concentrate their votes on a trusting witness to make him into the TOP 4 and then have a veto right over any potential hard fork.
This is just an idea among a lot of others many people are currently thinking about. This is just food for thought.
Thanks for those who have read this.
Please comment whatever this inspired you.