as I understand it, 1 person can buy more than 50% of tokens and have a casting vote during each vote
Unfortunately, whales (users with lots of tokens) won't be able to swing the votes much as we have put into considerations these factors to calculate the voting weight for each address.
But on the other hand, it would also be fair to consider the number of frozen tokens when voting. I don't know how to do it right.