Restoring Honest Elections

by Phredd  (fredm70@gmail.com)

Aside from the fact that America is supposed to be a republic, not a democracy, I was incensed when I first saw the documentary Hacking Democracy on YouTube a few years ago.  It laid out the numerous ways that elections can be (and have been) hijacked, both electronically and mechanically (i.e., old fashioned ballot box stuffing, disappearing ballots, etc.).

Bev Harris was a grandmother in Washington State who accidentally stumbled upon Diebold's FTP site while surfing the Internet one day.  If someone who is as technically illiterate as I am can get the election software, she thought, how much easier would it be for a computer savvy hacker to find it and completely control an election?

This eye-opening experience led her to start the website Black Box Voting.

I've personally been in the IT field for 33 years now (that's 21 in hex), and though most of it has been in the mainframe world, I began learning distributed computing (e.g. .NET, C#, VB, and JavaScript) back in late 2007.

It further ticked me off that any company, like Diebold, can get away with writing and selling software that is proprietary (read secret) that is supposed to do nothing more than count votes and report the results.  How hard can that be?

If we were to count paper ballots by hand - not as infeasible a task as it first seems - we wouldn't do it behind closed doors so as to invite suspicion regarding accuracy and honesty.  Ideally, it would be an operation much like the kind of restaurants one frequents where the patrons can actually watch their food being prepared, nothing hidden from view.

It's tough to rip off an election when everything is done in plain sight, as it should be.

Furthermore, no election software firm or voting machine manufacturer is accountable to anyone for the integrity of their wares.  It is ironic that a majority of the public distrusts government, yet they believe that it can be trusted to administer the periodic selection of its leaders.

I can't imagine a good reason why election software should be proprietary, and decided to write some pseudo-code that would accomplish counting votes for an election.  It appears below, and may strike you as overly simple.  If I've overlooked any requirements of a normal election, I'd be interested in knowing it.

For each race...
  Initialize all candidates' totals to zero
  Do until all votes are counted (whether as they are cast, or when polls close)
    If vote-is-for-candidate-A,
      Add 1 to candidate-A-total
    Else-If
      vote-is-for-candidate-B,
      Add 1 to candidate-B-total

      ...etc...through...

    Else-If
      vote-is-for-candidate-x,
      Add 1 to candidate-x-total
    End
  End Do
  Report totals
End

Granted, this considers neither write-in votes nor unintelligible votes (the ridiculous hanging chad comes to mind), but those could be addressed with equal simplicity.

Problem is, from a free-enterprise capitalist point of view, you can't make money with this code; a six-year-old could have written it.  But such is the need for fair elections; the profit motive is hard to defend in this instance, even if easy in most others.

That covers the way elections ought to go from a software standpoint, I thought.  But just for grins, I decided to see how many ways I could think of to manipulate the votes toward a desired outcome.

Put another way, if I were an auditor reviewing code for evidence of foul play, what would I be looking for?

Without much effort, the following came to mind:

1.)  Pre-load the preordained winner's vote count with a nonzero total.  This can backfire if the turnout for the other candidates exceeds this number plus his turnout.

2.)  For every n votes cast for the intended losing candidates, add n + x (where x > 1) votes for the predetermined winner's count.  This could result in an absolute (rather than relative) margin of victory of n * x votes.  (Think of the childhood game, "One jellybean for you, two for me...")

3.)  Similar to number 2, but multiply n by some factor, e.g. 1.17, to give a relative (rather than absolute) margin, in this case 17 percent.

4.)  Similar to number 2, but for every vote cast for the intended winner, subtract 1 (or more) from the contenders' counts.  This is risky because it can theoretically result in a negative total; whether by this exact method or not, this actually happened to Al Gore in at least one precinct in the 2000 presidential election.

5.)  Whereas 2, 3, and 4 would manipulate the running totals, one final adjustment could instead be made after all votes have been counted, either adding an absolute (as in 2) or a relative (as in 3) number of votes one time.

There are no doubt other ways I haven't thought of, but you see how easy this is.

It's ridiculous.  Where I live, it seems every election night, as people are anxiously awaiting the results after polls have closed, the local media will announce, from the central election headquarters where the computers are compiling totals from surrounding precincts, that they are experiencing computer problems.  Unknown (and unaccountable) experts come in, survey the situation in whatever mysterious but unquestioned methods they employ, and the reports then convey that it's been fixed...

And this doesn't consider the chain of custody issues where the machines are loaded into the back of a van and driven (by who knows what route, by who knows what driver) to the central election location for final processing.  Memory cards can easily be replaced, hacked, etc.

Credit Bev Harris for not just relaying the gloom and doom picture of rigged elections in America, but also providing a variety of remedies to the average citizen to ensure elections are honest.  Different things can be done before, during, and after an election to bring about this much needed reform.

Even if I could engineer the next election to seat my favorite candidate in office, I would rather devote the efforts to preventing his dishonest defeat.

Return to $2600 Index