HACKER Q&A
📣 _wldu

Why Isn't Open Source Voting Software Mandated?


Why doesn't the United States (and other democracies) require open source voting software for all elections? Software that can be externally verified and validated and that could reproduce the results of an election (given the voting data set). Why are citizens expected to trust private companies and closed source software to elect officials? All software has bugs. This fact is not disputed. Citizens should have access to inspect the software used during national and state elections. This should be a basic democratic right. Why don't we do this? Why don't people demand it?


  👤 godelski Accepted Answer ✓
Everyone here is talking about paper ballots. Good, but this ignores OP's question. Most voting machines, even if they have paper trails, have some software in them. Just saying "paper ballots" doesn't address the issue.

To answer OP's question, I personally have no idea but think it should be. Much of our scientific work is open sourced (e.g. codes from national labs, NASA, etc). But I think a lot of people don't understand what open source is or means. They think you can't have open sourced software and still privately own it. We still honestly haven't figured out how to deal with this adequately in the law (there's a post on the front page about FB taking their OS project, and these posts happen at least once a month). People don't demand it because frankly people aren't very tech literate.


👤 remirk
Because open source software doesn't make electronic voting 100% foolproof either. It's hard to prove the software running on the systems is the same as the source code you've read.

And you still have other issues like radio waves being emitted based on the computers' calculations, which (in theory) makes it possible to determine what you've voted. Researchers in The Netherlands proved that it was possible with the machines there, which is why we went back to pencil and paper.


👤 aazaa
> Why doesn't the United States (and other democracies) require open source voting software for all elections?

One thing that's different about the US is that each state is responsible for carrying out its own elections. There is some federal involvement, but it's mostly up to the states to implement.

One often-cited advantage of this approach is that it makes it difficult to attack a presidential election because you'd have to work across different state voting systems.

So a national mandate would face opposition on the federalism issue.


👤 LatteLazy
There really isn't a good case to be made for electronic voting at all. Paper is much simpler, more reliable and has none of these issues.

👤 hedora
Experts in this space demand paper ballots.

👤 sova
I want to be able to make sure my ballot was counted. Give me a public/private key pair when you mail me my ballot or when I leave the polls, and encrypt it in such a way that I can confirm the authenticity myself. As a software developer, I will not be convinced that this is not possible.

👤 bsenftner
The reason is simple: there is no open source voting software lobbyist in Washington DC with financing for congress people's elections. Anytime a Lobbyist is partially financing a congress person's election, they get to "participate" in that congress person's legislation within the Lobbyist's area of specialization. I wager there are Lobbyists for the commercial voting systems, and that is what prevents an open source alternative from even being considered.

👤 chrisseaton
> Why Isn't Open Source Voting Software Mandated? ... Why don't people demand it?

Because paper is simpler and better. It works just fine in other countries.

> All software has bugs.

So why do you want software? What do you think the advantages are?


👤 dogmatism
ITT, people talking about the merits of paper vs electronic. But the answer to the question is simple: same reason most government software isn't open source, namely, lobbying

👤 drivingmenuts
There’s too much money behind commercial voting software. At the end of the day, it’s politicians who make the decision on what to support based on contributions and influence from companies with deep pockets and wealthy backers.

Additionally, voting doesn’t happen often enough for that to be at the top of our minds among all the other things we have to deal with that have more immediate and visceral impact. Only a small portion of the American population lives well enough to be able to look beyond next month or even next week. Unlike the EU, we are largely reliant on our own resources for major life emergencies, and we’re gathering (or failing to gather) resources to mitigate them.

It will take many generations of work to fix that situation so that people can worry more about long term needs rather than staying focused on the short term. It will also take a lot of money that the middle class can’t afford and the wealthy won’t spend.

I don’t expect it to happen in my lifetime.


👤 ssivark
I think a practical means to achieving this would be to self-organize and create the hardware+software design and a proof concept for this. That makes it much easier for those concerned to stress-test it, and then point to benefits, since there is now a tangible realization of the idea. That should completely change the dynamics of the political process needed to get adoption. An easy path would be to get it approved for trials in smaller-scale local elections, and then slowly scale its usage over a decade or so.

PS: One could easily envision an electronic system backed with paper printouts. The electronic system provides immediacy and avoids human counting errors, while any large scale manipulation of the electronic system can be verified by counting the paper ballots.


👤 matt_s
There is Open Source voting software and it is in use in about a dozen states. I'm not sure to what extent - couple counties or statewide. It involves paper, voting machines and most importantly audit software.

https://voting.works and code here: https://github.com/votingworks

The general population outside of Hacker News wouldn't understand the concept of Open Source software.

Maybe try to get the above in use in your local county or state. Movements start locally, if enough people suggest this people in office will listen.


👤 sam_lowry_
Software or not, is not the point. Members of the local polling station should be able to verify votes, and the easiest process is hand-counting, then publishing the sums per candiate.

👤 dilippkumar
Slightly related question: Why are voting machines soo complicated that there’s scope for any bugs in the first place?

A vote counting software based on dedicated buttons- one for each option to vote on - should be something that is simple enough to be assigned as an CS undergraduate course project.

We have built very sophisticated banking software that handles several orders of magnitude more computations and has been ticking away bug-free for decades now.

What am I missing?


👤 foosamu
It feels like voting and human rights is always delayed in our history. Creating something that would gurantee free elections could revolutionise the world. But that does not mean it's in everyone's short-term interest. Why would any corrupt politicians encourage something that would put them in prison?

👤 Findeton
I don't know but my brother has a secure electronic voting company with open source software https//nvotes.com

👤 0x262d
The US especially is an oligarchy and for-profit US tech companies dominate the tech industry. Those same companies are atrociously anti-user and notorious for selling data etc, so people don't trust them and I don't think there is broad awareness that there could be a decent software solution. And also we could just use paper.

👤 Spooky23
Because open source doesn’t really solve any problems, and probably creates a few.

Tabulating ballots is all about process. You can have the most reliable software on earth, but if you operate it wrong, you won’t get the desired result.


👤 heavyset_go
Trade secrets, patents & IP, and national security are usually the reasons cited by politicians and manufacturers of voting machines.

👤 mcknz
Election officials, politicians, and state & local governments do not equate open source with security. It's counterintuitive.

👤 2Gkashmiri
i am dumb but can anyone explain to me why is it difficult to set up a website, give each voter a login where they tick a poll. one time login, mfa and other stuff. hasnt internet solved "polls" already?

👤 eli
What problem are you trying to solve? “Reproduce the results”? You mean counting?

👤 boulos
(I'm going to assume you mean the vote counting machines / software)

tl;dr: In the US that decision would be up to each state.

In the US at least, the management of elections is left to the individual states. Assuming you're most interested in the US Presidential election, it's also specifically delegated to the states to choose how they wish to select their electors (it just happens that most use a popular vote of their citizens in a winner-take-all setup per state).

There are a number of groups trying to push for more transparency, but it's fundamentally a per-state issue in the US. California has a bill [1] that seems like it "passed" but is referred to committee (stuck). It would establish $16M in funding, at least half of which goes to development, which must be AGPL 3:

> (1) All of the system’s software developed at least in part using state or county funds pursuant to this section must be licensed exclusively under the GNU Affero General Public License 3.0 or a later version.

and

> (2) All of the system’s software components must be open source during development, using a process that is open to public feedback. Development must be carried out in public repositories by January 1, 2021.

So some folks definitely agree we should have open-source election software. Most likely, if a system becomes successful in California (the largest market) it could spread to other states. As frustrating and repetitive as it sounds: you need people to vote in local elections, and contact their local representatives.

[1] https://leginfo.legislature.ca.gov/faces/billTextClient.xhtm...


👤 dmalvarado
Developers casually looking at source code vs nation states paying teams of hackers to find exploits. With the goal not being to steal money, but to steal a government.

I can understand why it's not open source.


👤 smitty1e
That, and make forensic audits a matter of course.

👤 digitalpacman
All software for voting is terrible

👤 rdsubhas
Voting machines (atleast in India) do not have a turing complete runtime. So there is nothing to open source.

A good way to describe it is a dumb printer. It exists to print a proper ballot for the elector who then drops it off. The machine _just so happens_ to also have a secondary counter while it prints, so it can be secondary verified for extra safety. The paper is what matters and it's still there. This is called VVPAT, Voter Verified Paper Audit Trail [1]. It has been proven over and over to give consistent recounts and restore trust in elections.

Over the course of time, after many many recounts, it becomes obvious that the machine-printed ballot and machine do not ever diverge. So it _just so happens_ that for convenience, the machine has grown to get counted first. If anyone has a doubt, they can easily go back and count the ballots which are stored forever.

Trivia: First time a Cabinet-rank senator in India lost election by 1 vote [2]. Recounts tallied down to the dot. It since happened again. Chaos still did not break out. Candidates were not fighting over who was the winner. Reason? Voting machines and verified ballots. Recounts won't change reality.

Answer to the primary OP's question: "Why not open source the software" – is the crux of the Voting machine is mainly 1950s pseudo-mechanical hardware. They are not networked. This is technology older than floppy disks. A lot of in this forum imagining "software" think in terms of C or Python, because that's the target audience here. Yo, it's not. It's not running an x86 processor.

It does not have a turing complete language to open source. If you want it, get a thrown away one. But open sourcing the "software" (if you call a few registers and a counter that) – doesn't make any sense as it doesn't give any picture.

Second – to a lot of commenters, why these machines? Single answer: Consistent recounts. With paper, it's 100% guaranteed that "No two recounts will ever be the same". It's a human process. Two humans verifying it will never come to the same conclusion. One will say the "ballot stamp was not in the right place", another will say "chad did not fall off the paper", someone else might just be tired in the night, so on and on. As a democratic society, we have had large cases of recounts that it's not even a surprise anymore. It has become the go to whining and agitation tool for every single loser of every close election. For the continued functioning of democracy, we have to put an end to this recount problem.

It's a pity that in the US where you had two really high profile elections (2000 and 2020), and you still cannot figure out how many times to recount to believe the result. Best of 3 recounts? Best of 5? Does that even improve trust?

I'll finally leave you with the summary of an excellent video on elections in India before/after voting machines. "Don't shoot the messenger" [3]. Every loser will complain and blame something. Hacking the voting process, obstructionism, who's issued voter IDs, where and how many voting centers are placed, gerrymeandering, media, pre-mature leading polls, on and on and on. All this thing about Voting machines is a classic case of shooting the messenger. The voting machine only exists to give one less reason to blame on. Don't shoot the messenger.

1: https://en.wikipedia.org/wiki/Voter-verified_paper_audit_tra...

2: https://en.wikipedia.org/wiki/C._P._Joshi

3: https://www.youtube.com/watch?v=zdo43a4JfYQ