Problem:
As pointed out on reddit the voting power is currently quite centralized to a few validators, which should be a concern since most users are lazy and won’t change their vote easily.
Additionally, I think the current system even encourages validator centralization: On the one hand a 1% to 5% reward bonus is given to the validator that proposes each block. On the other hand, the more stake, that a validator has delegated to them, the more weight that they have, and the proportionally more times they will be elected as block proposer.
If every validator would charge the same fee, a homo economicus would always select the validator with the most votes, since this validator has a higher chance of getting the reward bonus. It can be argued that validators don’t charge the same fee. However, in reality even without this reward bonus it’s highly likely that a validator centralization takes place in the long run (see almost every other economic system) and the reward bonus only encourages this even further.
Ideas:
A rough idea would be to instead of the block proposer reward to introduce a block proposer punishment depending on the precommits. This means the more blocks validators produce the more they will be punished. Since tendermint is deterministic, it should also be possible to punish them even more if they don’t produce the blocks at all or depending on the level of precommits. If every validator charges the exact same fee, a homo economicus would in this situation select the validator which has the least votes and is still in the top 100/125 validator spots. The incentivisation/punishment ratio should be in a way that validators still have an interest in getting as much people voting for them as possible. A little bit like a tax system (at least in Europe): rich people need to pay more taxes, but they are still getting richer by earning more.
A simpler solution, which doesn’t fight centralization, is to remove the block producer reward and don’t integrate an additional punishment for block production.