- Physical security for electronic systems
- Rigorous testing of electronic machines
- Properly trained poll workers, and rapid-response teams on Election Day
- Public records at the precinct level
- The option to vote non-electronically
- Independent security experts
- Transparency in electronic voting
Looking at this list, it seems that an e-voting system would benefit from being open-sourced.
Democracy and Open-source
My first reason for mentioning open-source as the savior of e-voting is that the open source community is inherently democratic in its nature. If you have something to contribute, you just go ahead and do it. If it’s good enough to withstand the scrutiny of other developers, it gets used. If it isn’t, it gets abandoned. This system of peer-review has already helped in turning some projects into the basic foundation of the everyday Internet: BIND basically covers how Internet addresses are translated from numbers to more friendly domain names; Apache powers the majority of the web servers in the world; Sendmail still sits at the core of most email implementation. Quietly, each of those tools gets improved by open-source communities, which can be seen as the best example of meritocracy in existence: you are what you contribute in the open source space.
Because the open-source community is a global one, tools can take into accounts variations at local levels, which is also something that benefits a more democratic process.
Democracy, Open Source, and weblogs
Weblogs have, other the last few years, added a missing component to the open source community: non-techie user feedback. When a blogger complains about a particular open-source tool, he’s providing feedback as to what works or doesn’t. In some cases, it can get contentious, as techies sometimes dismiss the user as clueless; but in other cases, it can be a good way to provide feedback.
E-voting as the most important open-source project
At the core of the open source argument is the concept of openness. At the core of the democratic argument is the concept of… openness. A strong democratic society stays open. However, power lobbies attempt to close things down for their own benefit. We’ve seen it happen around copyrights in the United States and are now seeing it happen in a number of other areas. In a strong democracy, watchdogs keep those attempts to be overly abusive. One way to ensure that they’re not is to provide some of the basic tenets of democracy. As a result, I’d venture to say that creating an e-voting package that is freely distributable is one of the most important projects the open source movement could undertake.
E-voting: A lot of work
Creating a good, secure, and open e-voting system is a lot of work. The work spreads across two key areas: hardware specifications and software development.
On the hardware end, a base implementation needs to provide a system that is inexpensive (so it can also be used in poorer countries), secure (so it cannot be tampered with), stable and reliable (so it does not add complexity to managing the electoral process), easy to use (so non-techies can put them in place and maintain them) and auditable (so its value can be proven).
On the software end, the software must be reliable and stable (so it doesn’t disturb an election), secure (to solve existing problems), auditable (so it can leave a trace of anything done to the system, either on the administrative end (setup and maintenance) or on the usage end), anonymous (so one can’t track who voted for whom), easy-to-use (so that even non-computer users can use it), scalable (so that it can be used at the local as well as national (or supra-national, in the case of Europe) level).
This is work that will need to bring experts from a number of areas in the open-source community, from people well versed on security to people well versed on design. However, because of diversity in the open-source community, the experts already exist. The question that remains is how to bring them together.
A long term project
In 2000, I called for more computerization of the voting system. Four years later, we seem to be facing similar predicaments. The private sector has stepped up to the plate but seems to have failed on a number of fronts, one of which is transparency. Considering that vacuum, it looks like it’s time for the open source community to step in. Results won’t be clear for many years to come, which makes it more difficult to manage as a long term project. However, projects like Linux did not just pop-up all built. To date, they have been the result of continuous improvement to a strong core.
The real test would be to see those machines deployed on a short term basis to do things like non-government related elections (maybe initially to vote on things like who gets to sit on the board of a foundation that would run this effort moving forward), and as time goes on, test them in school elections, then local government elections, and so on… As a result, it will be a project that will probably not alter the course of a democracy for at least another decade.
Can the open-source community work on such an effort for as long a time? I believe it can.