Recently the New York Times carried an article by David Pogue endorsing what he called "open-source" voting machines–electronic voting machines running on software anyone can share and modify. The term "open-source" comes from the open source movement, a software development methodology which encourages wider dissemination of a computer program’s source code (the human-readable version of a program) so that bugs can be fixed faster and with less cost by leveraging the talent of the world’s programmers. The sentiment Pogue’s article expresses is laudable even if all the details in the article are specious–we do need voting machines we can trust and we need them before we run elections.
However, you can’t make voting machines more trustworthy by making source code to them available. The benefits for sharing and modifying voting machine source code lie elsewhere. The situation with voting machines (and any other publicly-used computer) is different than for computers which you control (like a home computer at your home). This doesn’t mean voting machine software should be proprietary– it should not be–it means that voters should not feel more confident in a voting machine because someone somewhere has access to share and modify the voting machine source code.
For computers you don’t control, computers where you don’t get the ability to inspect and modify the hardware and all of the software (like a voting machine or a public kiosk computer terminal), you will never know if software you trust is running. So you need a way to trust that that machine does what you want it to do and nothing else (voter-verified paper ballots perform this function for voting machines). Just the opposite is true for computers which you control completely (like a home computer). On your home computer you can change software, replace parts, reformat hard drives, and so on until you arrive at something that you trust.
A vibrant community of hackers (I’m using the word in the traditional sense of playful cleverness, not the mass-media sense referring to a ne’er-do-well) doing work on voting machine software will not help you to be totally sure that your votes will be recorded and counted accurately. But their work can help you know that your tax money is going toward something that will last because we can become more self-sufficient when we have the ability to improve our voting machines. We will no longer need to rely on a monopoly for software improvements and bug fixes (all software proprietors are monopolies because any bug fixes or improvements must come from only from them). There are talented computer programmers and hackers around the world who can chime in with help as well. A county could also hire consultants to modify the software. Like the NYT article says, this is an opportunity to benefit from the talents of a (justifiably) untrusting bunch of people.
But Pogue gets some things wrong: that article talks about how the "Linux operating system" has been shared and modified with a similar ethic– people around the world develop and share improvements ad hoc and collectively we benefit from a better system. But Linux is not an operating system and it never was; Linux is a portion of an operating system called a kernel. Also, championing sharing and modifying computer source code for ethical reasons did not start with the open source movement, in fact that movement mainly exists to benefit businesses. The copyright license that the Linux kernel is licensed under (called the GNU General Public License or GNU GPL) builds on the concept of share-and-share-alike; everyone can share copies of the Linux kernel and modify it to suit their needs so long as they pass on the same freedom to share and modify that they received. This license was the legal basis of the free software movement, a social movement which started over a decade before the open source movement. The "free" in free software movement refers to freedom, not price. By contrast, software proprietors extend no freedom to share and modify software (Microsoft’s Windows, for example, is a proprietary operating system; you are not allowed to share a copy of it with your friends, you cannot inspect its operation without source code, and you cannot prepare improved versions of Microsoft Windows or share them). But I think that Pogue’s heart is in the right place. We need accountability and we need to collectively check for and fix problems or improve the software in any way we deem necessary. The way to do this is with software which we all have the freedom to share and modify. The comparison to Microsoft (and all other proprietors) is apt– Microsoft will not share the source code to their operating system so nobody but Microsoft can really determine how it works.
We need complete source code for voting machines because we will want to make the machines do things that they weren’t designed to do. This could mean fixing bugs or adding features which we didn’t think of at the time we bought the machines. What if the county or state switches to an instant run-off voting system? What if same-day registration is made legal and we need to improve the software to deal with more voters? Nobody can know where all the bugs are and nobody can predict perfectly what features we’ll need. So you need all of the source code to the machine to be able to prepare for the unexpected. It would be horrible to learn that you can’t have a more progressive voting system because the voting machine proprietor is unwilling to cooperate with your needs.
But having a copy of the complete source code for the voting machine software not enough. We also need the source code to be licensed under an irrevocable license that permits sharing and modification under any circumstances so that we can legally make changes and legally share the program for our mutual benefit. Anything less than this is bad news and we should not pay for the machines until we get what we need. It would be awful to discover that we can only look at the source code, not modify it or share it with people who are willing to help us. The GNU General Public License is a fine license for this task because it uses copyright law in a clever way (called a "copyleft") to make sure that the freedom to share and modify a program are never separated from the program.
I am on the voting machine recommendation committee for Champaign county in Illinois and I’ve brought up these concerns to the my committee. So far the voting machine recommendation committee has arrived at a consensus that we need a voter-verified paper ballot (and we’ve seen one pair of machines supplies this– fully human-readable paper ballots which can be hand-counted after the election). Our voting machine recommendation will go to the county board. The county board will make the final decision on what to purchase and then the county board will sign a contract with a vendor. Thus the county board holds the real power.
I want to make it a point of the purchase contract that we will receive complete source code under a free software license. Logically, there shouldn’t be any objection to this request from the machine manufacturers (ostensibly the copyright holder on the source code to their machines) because they will have our money when we purchase their machines. Diebold (makers of the troublesome touchscreen machines you have probably read or heard about) is an exception– Diebold’s machines run a variant of Microsoft Windows. Microsoft will most likely not share complete source code to any Microsoft Windows operating system with us. They will probably not do so under a free software license. Hence Diebold most likely cannot satisfy our need for complete corresponding source code to the voting machine software. I think that the recommendation committee can take a big step in the right direction by recommending a voter-verifiable paper ballot system which we all have the freedom to inspect, modify, and share. This system need not be a Diebold system, but fortunately there are other voting machines out there. In time, with effort and a focus on our social and electoral needs, we can arrive at a voting system we can trust which is not dictated to us by a for-profit institution.
JEFF NICHOLSON-OWENS ("Dr. NO") is a computer consultant in Champaign, Illinois, and conducts the radio program "Digital Citizen" on community station WEFT-FM. He can be reached at firstname.lastname@example.org.
Copyright 2004 J.B. Nicholson-Owens Verbatim copying and distribution of this entire article is permitted in any medium without royalty provided this notice is preserved.