Voting System Iceberg
The more I learn about something, the more I become aware that I’ve just scratched the surface. This week, it’s voting systems again, courtesy of Henrik Ingo’s blog. He also writes about MySQL, which is how I discovered his writings, but what really intrigues me is his work on a secure online voting system, and his attempts to make it ideal. Sadly, just as Arrow shot down the idea of a perfect ranked vote aggregation system, Ingo has produced a list of incompatible requirements for voting securely. How can I verify that my vote was processed accurately, without being able to prove how I voted?
Math may come to the rescue here, in the form of encryption algorithms that allow certain mathematical operations to be performed on a set of encrypted ballots. The explanations get a little more technical than I’m comfortable with, but if such a scheme is practical, then I can see how being able to verifiably add ballots would suffice for plurality, approval, or range voting. What I don’t see is how you can properly format the ballot, prove that it’s properly formatted, verify that your ballot is among the ones in the final tally, and still be unable to prove to another person that you voted in a certain way. There may well be ways to do that, particularly with certain constraints, but I’m not going to be the one designing them.
After all, I still have to convince myself that range voting is better than a Condorcet method. I may yet get there, and I certainly buy the argument that approval voting is a perfect first step for a political body seeking improvement, but something still feels off. Maybe it’s the way it feels too similar to plurality or a Borda count, with their obvious flaws.