The problem isn't with the voting algorithm - it's with the voter pool. Voters must have skin-in-the-game (ie be responsible for their vote) in order to have responsible government.
This means that votes should be weighted according to taxes paid. People who pay no tax shouldn't be excluded, but the fact that they are not personally responsible for funding the government should be taken into account in their vote.
I wrote taxes, not salary. The actual form of the tax system is a separate issue.
It seems obvious to me that your vote should be weighted according to how much you are personally responsible for carrying the burden of government. Why should it be otherwise?