A better voting technology
What prompted me to review the issues surrounding voting was this article in The Atlantic: https://www.theatlantic.com/magazine/archive/2017/12/guardian-of-the-vote/544155/
Barbara Simons is a computer scientist who asserts that paper ballots are the only means of safe voting. While I used to agree with her, I think it is worth taking a look at another technology which might be even better than paper. But before we do, let’s examine the current methodology. There has been a strong movement to ‘modernize’ to using computers to record and tally votes in the US, and to move away from paper systems. But there are several problems with this approach; cell phone videos have emerged showing a computer voting terminal changing the vote of a user before it is cast. So not only might the programmers of these systems interfere with actual votes, we have scant information about how voting systems are secured and protected from hacker attacks. Wide populations of votes might be changed by a single successful infiltration.
Paper ballots have the property of being a physical record of the voter’s preference, and the vote cannot be changed after it has been cast. Also, paper records can be audited after the event, to make sure that the results are as presented. We use physical security to safeguard these votes, but of course there are attacks which can cause numbers of votes to not be counted. Paper also takes up space and natural resources, and managing paper voting systems takes a lot of time and effort.
A ‘disruptive’ technology is one which has a set of features so compelling that it replaces an existing system seemingly overnight. An example of this is Uber, which is rapidly stealing all the business away from cab companies. Uber is cheaper, more predictable, easier for the riders to use, less centralized, and quicker and more responsive than traditional cab alternatives. Just as ubiquitous cell phone usage has buried pay phones, Uber is pushing cab companies into irrelevance.
What might be better than computer voting, and more safe and secure than paper balloting? I think a system of smart contracts can and will revolutionize voting for every issue from school council membership to major US elections.
The smart contracts I propose would be based on Ethereum, a digital currency much like bitcoin. But what makes Ethereum so much more interesting than bitcoin is that it is also a network of distributed, open source, encrypted computation nodes. This Ethereum Virtual Machine (or EVM) runs code in a safe and secure fashion, and results of the code are written to a blockchain, which is an unalterable world-wide public record. Smart contracts can use other smart contracts, but do so in a safe and secure fashion.
Imagine voting to be a process whereby voters use a ‘validation’ smart contract to establish their identity and eligibility to vote on a particular ballot, and another ‘tally’ smart contract to actually record and count the votes. Here are some of the features of this system:
The first problem with traditional voting is the question of who gets to vote. For example, consider a school student body presidential election. Qualifying voters would be those people who are active students at the school in question. A student who wants to vote would use the approved validation contract, establish a voter identity, and the contract could be written to check electronically with the school’s records to make sure that this is indeed a registered student, and nobody else has registered in his or her name. The student would be able to perform this validation on their phone, any time, anywhere, as long as it is in the approved registration period. As this voter’s registration is protected by a password, -or several-, only the student can use that registration to cast a vote. A compelling feature is that this system would be resistant to padding the election with ‘dead’ voters, for instance; only one vote would be allowed per registered student.
Consider the voting period to a specific week, instead of one day. Any voter who has already established their credentials can cast their vote during that week; the vote is recorded in the ethereum blockchain, and cannot be altered. The tally contract can be written such that the actual vote information itself is hidden; only the voter can see and verify their vote, and only when it is time to count the votes would the actual number per candidate be exposed. No other voting system enables a voter to enjoy complete anonymity, and yet, the ability to verify their vote at any time, regardless of location.
Just as you don’t want to lay down your poker hand before the last bid, the tally contract can be written to allow anyone to see the total number of voters registered to vote, and perhaps how many of them have already cast their votes, but not who they voted for, until the end of the election. Once the election is over, the number of votes for each candidate can be shown, but no information will be revealed about which candidate a particular voter chose.
What about concerns that hackers might tamper with the code of this system to change the outcome? A feature of smart contracts is that the users can review the code that makes up the contract. As the code is stored in the blockchain, it is unalterable; if you have confidence in the code before you use that contract, you can have confidence that the contract, when it runs, only runs the code you have approved.
Do these smart contracts actually exist? Not as such, yet. But the EVM does, and is freely available for anyone to use, right now. There are programmers who are creating all sorts of contract code; I think a simple example like a school election experiment will be enough to show that this is a far more compelling, effective, and fair solution than paper ballots.