So a problem I might see with your implementation of the voting system, might be a rouge group that might use this voting system to exploit the changes that might be pushed to the "protocol" or the software.
We currently see bots and people being paid to "like" or "vote" for a specific change on other platforms, so why should this be any different with your system? (We even saw people using cloud services to simulate full nodes to push a specific fork)

How do you validate legitimate votes?
I did some research and maybe i add some PoW.