It’s a human nature to use extreme positions as an approach or architecture element and to fail because of this reason. Bitcoin people want to achieve maximal decentralization and fails with this goal in long term through mining pools. Government wants to use centralized systems to have a better control and fails with this in long term with a lack of trust. Thus, I think EOS with DPOS and elected 21 BPs goes into the right direction by choosing a middle solution between two extremes. As we all know, this strategy of enough decentralization has pay out by achieving a lot of benefits like, very fast transaction, fast developments and innovations through friendly competitive BPs. My point is, that in most cases it’s a good idea to avoid extreme positions, when you develop systems.
Unlike DPOS with elected 21 BPs, the DPOS voting itself represents an extreme position. It’s purely human driven and I think that this is the main problem for the centralization issues that results into the Pareto Principle. I think that the Pareto Principle has more weight only if the chosen architecture or system has hidden issues. The opposite to a purely human driven DPOS voting is an algorithmic driven DPOS voting. Thus, DPOS voting should force people to vote in that manner, that their votes benefits the network as maximum as possible. This could be done with an algorithmic decreasing of the voting power, if someone does not vote in that manner, that his voting benefits the network in a maximum possible way. If you will, the architecture of the DPOS voting system should try to prevent the network to fall into a risky status by lowering the voting power from inexperienced or bad Voters. It’s up to the BPs or the community to educate voters in future, so they will become more experienced voters.
Let’s make an example how we could maximize the decentralization of the elected BP organization locations:
Someone could implement something like an organization locations graph (or table) smart contract where all organization locations are listed and the relations to each other. Then all BPs should publish their BP organization locations. After the voter has done his BP votes, the smart contract should evaluate the votes with organization locations graph, compute the decreasing factor if the voter has voted one or more BPs with similar organization locations and decrease finally the voting power by this factor.
This voting approach is still a DPOS voting. There are a lot of combinations a voter can vote without losing his voting power!
There could be in parallel and in combination more solutions like this for other decentralization issues such as voting for maximum amount of 30 BPs, voting for different computer infrastructure (Bare Metal or same cloud computers) and so on.
Also, this approach to force good voting behavior prevents to pay voters to voting, at least for some cases. In general paying people for voting could attract the wrong people like short term speculators. Thus, it’s a much better approach to give the voters at zero costs an incentive to vote in such kind a way, that their voting power doesn’t go down.
Let’s fix directly the issue itself that has its origin in the human behavior. We are not perfect in many ways so an optimized voting system should prevent us to make mistakes and damage the network in long term. The current DPOS voting system is similar to the real live government voting system with one big difference. DPOS voting system is very fast. Unfortunately this is also the reason why we see the downside outcome of this purely human based voting in a fast manner. That this is not a good thing you can see in all faulted governments with socialism, inflation of money and huge amount of death.
In short: Vote badly and your voting power should go down. Vote in a good manner and your voting power should retain as it is.
Do you get the idea? Is it technically possible to implement such a solution into EOS?