Open-source voting for San Francisco
To open-source fans, the lure of open-source voting systems is surely strong. So a talk at 2019 Open Source Summit North America on a project for open-source voting in San Francisco sounded promising; it is a city with lots of technical know-how among its inhabitants. While progress has definitely been made—though at an almost glacially slow speed—there is no likelihood that the city will be voting using open-source software in the near future. The talk by Tony Wasserman was certainly interesting, however, and provided a look at the intricacies of elections and voting that make it clear the problem is not as easy as it might at first appear.
Wasserman is a professor of software management practice at Carnegie Mellon Silicon Valley and a San Francisco resident; he was asked to serve on an advisory committee on open-source voting for the city. San Francisco is about 11x11km, with around 800,000 people; roughly 500,000 of those are registered voters and nearly 350,000 turned out for the November 2018 election. He said that 70% participation by registered voters is a pretty good turnout for the US.
There are two different organizations within the city government that handle elections: the elections commission and the elections department. The commission is tasked with making the policies and plans for elections, while the department actually implements them, runs the elections, and reports the results. The elections department also handles "problem" ballots and registrations; as part of that, it stores 20 years of paper ballots underneath city hall, which he found astonishing.
$ sudo subscribe todaySubscribe today and elevate your LWN privileges. You’ll have access to all of LWN’s high-quality articles as soon as they’re published, and help support LWN in the process. Act now and you can start with a free trial subscription.
The goal of the project is to develop the country's first open-source voting system for political elections, which could potentially have a broad impact if it is successful, both locally and nationally. There are other justifications for it as well, including providing transparency for voters and the expectation of saving money. There are only three (down from four due to a merger) companies that sell election systems in the US; they are not cheap and moving to open-source would provide freedom from being locked into those vendors.
History
The history of the idea goes back a long time, so far, in fact, that a San Francisco civil grand jury investigated the whole process. It produced a report [PDF] that described everything that had been done up through 2018. The idea was first raised in 2005, but it was not until 2008 that the board of supervisors (similar to a city council) established a voting system task force. The board of supervisors is under the mayor and all of the governing bodies are for both the city and county of San Francisco, which are governed together.
The voting system task force eventually found that open source is a good idea for election software—in 2011. The board of supervisors evidently mulled that for a while and in 2014 passed a unanimous resolution to move forward. The elections commission also voted unanimously, in 2015, to proceed. That made the papers and other media, Wasserman said, including on the front page of the San Francisco Examiner.
In 2016, the mayor budgeted $300,000 for an initial study and in 2017, the elections commission formed the open source voting technical advisory committee (OSVTAC), of which Wasserman is one of five members. Meanwhile, the city had awarded a contract to a consulting company (Slalom) to produce a plan for moving forward.
In 2018, the report from Slalom was delivered; "let's just say that it wasn't very strong", he said. OSVTAC recommended against following the suggestions from Slalom and the commission agreed. So the commission passed a new resolution [PDF] to continue to proceed on the open-source voting path. "You get the idea; it is taking a while". Around this time, the civil grand jury released its report, which was "pretty comprehensive" and "actually a good report", he said; it laid out all of the reasons why things were not moving faster.
In 2018, $1.7 million was allocated for ongoing project work over the next two years; there is hope that either the mayor's office or the state of California will add to that pile. Instead of putting the work out to bid, the Department of Technology (DT) took the work on and hired a project manager to oversee it. The first task was to do an "extensive study" of all the other open-source voting efforts it could find.
At the end of July, the first community meeting was held to start to include the public in the process. Various advocacy groups attended, along with the governmental representatives and interested citizens; it was facilitated by an outside mediator. The discussion was about the goals of the effort and is the start of building a community around it, he said. "And that's where we are."
Why so long?
He said that attendees may have noticed that he did not say anything about elections being held using open-source software. That has not happened and is not going to happen anytime soon. "Why is that?"
There are a number of reasons, but the first is that elections are complex. He gave a rundown of the different ways that San Francisco is partitioned for electoral reasons. Those regions are for electing officials at different levels of government: 11 supervisor districts, two US congress districts, two state assembly districts (that are, naturally, different than the congressional districts), as well as various other districts (rapid transit, air quality, school, ...) each with their own unique boundaries. His relatively close neighbor could have a very different ballot from his.
Beyond that, candidate names often have to be randomized to combat the "first in list" effect where those without strong opinions will simply pick the first candidate. San Francisco uses ranked-choice voting, which needs to be accommodated. There are lots of different ways to vote, as well, including early voting, vote-by-mail, absentee voting, and voting on election day in the local precinct. Provisions for disabled voters need to be made. Ballots need to be available in four languages city-wide (English, Chinese, Spanish, and Tagalog) and in two more (Korean and Vietnamese) in certain precincts. And on and on.
Once the voting has been done, the votes need to be counted. There are provisional, challenged, and improperly marked ballots to deal with. There needs to be support for poll-watchers to ensure the fairness of the election. In order to verify the results, 1% of the paper ballots are randomly sampled a few days after the election; so the reported results from some precincts will be compared to the hand-tallied ballots. All of that needs to be managed and administered.
Voting systems are under attack as well, as we have seen in some recent elections. Sadly, all of the voting equipment he knows of runs Windows 7. Perhaps those machines could be upgraded to Windows 10 and run the programs under some kind of emulation, but that is not happening. That is particularly worrisome when our elections are a global target, he said. The current voting system is not transparent, however; it is expensive and leads to vendor lock-in. There are also few or no provisions for updating the software that runs on these system. So it is not just Windows 7 running on them, but unpatched Windows 7 in many cases.
There are also government procurement issues; proposals have to be put out for competitive bidding among interested vendors. This is part of why he believes that the DT took on the work to develop the open-source voting system rather than have it go out to bid; it saved a round of proposals and bids. There are also various government transparency laws ("sunshine laws") that can complicate things at times. For example, OSVTAC meetings must be announced 72 hours in advance and OSVTAC members cannot privately email each other about anything related to the OSVTAC. If he wants to send something out to the rest of the committee, he has to send it to the chair, who will distribute it to the members.
More than just technical
So there are some complex technical hurdles, but those are not the main problem areas. He referred to PESTLE, which relates all of the factors that make up the "context of software development": Political, Economic, Social, Technical, Legal, and Environmental. Dealing with the technical side is less difficult than some of the other factors; one of the committee members fairly easily put together a program that could scan ballots, associate the marks with names, and tabulate the results, for example.
There is a lot of citizen concern about voting and elections in the US. Some of it is about voter fraud (votes from those who are ineligible), which "barely exists as far as anyone else can tell", Wasserman said. Other concerns are about the accuracy of the vote tabulation and vendor fraud.
The current voting systems are generally internet-enabled, not for full internet access but for the machines to be able talk to the vendor's servers. One of the main vendors is Diebold, which has been identified in the past as having tampered with machines and results. Paper ballots are an important component to address the concerns. He noted that the US state of Georgia has been ordered by a judge to run its next election using paper ballots because its voting machines were deemed unsafe.
While open-source advocates see open-source voting as a way to provide transparency and to build trust in the system, others do not necessarily see it that way. There are some who are concerned that open source would allow attackers to change the code in the systems mid-stream. Voting systems are frequently challenged; any open-source effort will similarly be challenged. Part of the problem is that many people simply do not understand what open source is and means.
San Francisco is not the first to try to come up with an open-source voting system. He listed half a dozen different efforts to create those kinds of systems; some of those systems have been used, but not for political elections. The Los Angeles County Voting System for All People (VSAP) has been approved by the California secretary of state (something that is required for any voting system used in the state), but has not been used for a real election. It is claimed to be open source, he said, but is not. It is built on open-source components and will run on Linux, but the code belongs to Los Angeles; "you can't get it".
The Open Source Election Technology Institute (OSET) is creating ElectOS, which is meant to be an open election system, but it hasn't built anything yet. It has a "wonderful board of advisors", but there's not much happening, at least yet, he said. Helios is used by the Open Source Initiative (OSI) for its elections, so it works, but it hasn't been used for anything on a large scale. The same is true for the others, such as Cornell's Condorcet Internet Voting Service (CIVS), which is the oldest effort he has found.
Wasserman had just returned from Amsterdam where he has a friend who is on an open-source voting committee as well. He was introduced to a system used in the elections in the Netherlands, which are also complicated in part because there are more than two dozen parties participating. The detailed specifications are available (in Dutch) as is the source code, but it is not open source. You can look at the code, but as far as he can tell, it is owned by the German firm that wrote it.
Meanwhile, the OSVTAC has made a set of recommendations on what the system should look like. It includes hardware and software requirements for voting, tabulating, securing, and overseeing San Francisco elections. There are a number of other organizations that are supportive of the effort (EFF, OSI, GitHub, Common Cause, ...). There is an effort to raise more money to continue the project past the end of the year.
He is hopeful that something comes of the project. Its funding is not assured, though there are several potential sources. It is all being done in the open and those interested can follow on the GitHub pages and on the city's project page. He finds it to be an interesting problem and has learned a great deal about elections in the process. Given the other high-powered organizations that are also interested, hopefully more will happen with open-source voting even if the effort in San Francisco does not result in a working system.
Open source and voting would seem, at first blush at least, to be obvious partners. It is more than a little concerning that figuring out the will of the people in a democracy is subject to the whims (and/or political leanings) of a small number of proprietary vendors—in the US at least. As Wasserman described, however, there are a lot of moving parts that have to be handled. Like tax reporting, accounting, and other areas where open-source software tends to fall short, election management may just not be an itch that enough of us are truly interested in scratching. Hopefully that situation is improving.
[I would like to thank LWN's travel sponsor, the Linux Foundation, for travel assistance to attend Open Source Summit in San Diego.]
| Index entries for this article | |
|---|---|
| Conference | Open Source Summit North America/2019 |
