[EM] Why We Shouldn't Count Votes with Machines

Kristofer Munsterhjelm km-elmet at broadpark.no
Sat Aug 16 00:54:28 PDT 2008


  > As I say above, we are in trouble.  Until we both fix the machines and
> demonstrate success of the repairs, such use of paper backups makes sense.
> 
> Complicating all this, paper ballots have their own problems.

Hopefully the paper ballot problems won't be the same as the machine 
problems, so that fraud is complicated rather than made easier.

>> Let's look at this again. What does a voting machine do? It registers 
>> votes. Surely, that can't be a difficult task, so why use a computer? 
>> Why not (for Approval or Plurality) just have a simple chip connected 
>> to a PROM, with the chip in turn connected to a bunch of switches, one 
>> for each candidate, with a matrix display next to each switch, and a 
>> final switch to commit the ballot? Such a machine would be provably 
>> correct: as long as you have a PROM that hasn't been preprogrammed 
>> (this can be checked at the beginning), and the machine hasn't been 
>> compromised (rewired switches, backdoor chips), then it'll work as 
>> promised.
> 
> I will use "zillion", a stretchable value, below:
> 
> A zillion precincts each set up for a few of the zillion races voted on 
> in the US.
> 
> A zillion personnel who must do all the manual labor and guidance of 
> voters.  This is a sideline, thus hard to justify learning complex 
> skills, rather than a full-time career for these.
> 
> A zillion voters, who BETTER be provided a simple interface for voting.
> 
> At end of election the counts for the zillion races better get attended to.
> 
> I really see it easier to do well effectively if you take advantage of 
> what computers can do (and have them do better than the failures we have 
> experienced).

So you're saying that computers are better than specialized machines? 
I'm not sure that's what you say (rather than that machines are better 
than paper ballots), but I'll assume that.

Because the specialized machines are simpler than computers, once mass 
production gets into action, they should be cheaper. The best here would 
probably be to have some sort of independent organization or open-source 
analog draw up the plans, and then have various companies produce the 
components to spec.

The simplicity of voting could also count against general-purpose 
computers as far as manual labor is concerned. If the machine has been 
proved to work, you don't need to know what Access (yes, Diebold used 
Access) is to count the votes, and you don't need a sysadmin present in 
case the system goes to a blue screen.

You could also do these kind of proofs on general purpose computers, but 
then you'd have to design the complete software system from the bottom 
up, which includes what one'd traditionally consider the OS; and if it's 
general purpose, you also have to ensure that the vendors don't patch 
the systems after they've been deployed.
Having the kind of programmable ROM infrastructure with a limiter on 
per-voter might be good in the general-purpose computer case as well, in 
which case the computer just act as a GUI. Then it can't mass vote - the 
worst (which is pretty bad) it can do is alter the ballot as the voter 
votes.

> For Condorcet you must recognize, for A vs B, how many ranked A>B and 
> how many B>A.  Must do this for every pair of candidates.  If write-ins 
> are permitted (better be), they are more candidates to attend to.

That's true, but it's still fairly simple. Assume the ranked ballot is 
in the form of rank[candidate] = position, so that if candidate X was 
ranked first, rank[X] = 0. (Or 1 for that matter, I just count from zero 
because I know programming)

Then the simple nested loop goes like this:

for (outer = 0; outer < num_candidates; ++outer) {
  for (inner = 0; inner < num_candidates; ++inner) {
   if (rank[outer] < rank[inner]) {      // if outer has higher rank
    condorcet_matrix[outer][inner] += 1; // increment
   }
  }
}

It's less than instead of greater than because lower rank number means 
the rank is closer to the top.

Write-ins could be a problem with the scheme I mentioned, and with 
transmitting Condorcet matrices. One possible option would be to prepend 
the transmission with a lookup list, something similar to:

Candidate 0 is Bush
Candidate 1 is Gore
Candidate 2 is Nader
Candidate 3 is Joe Write-In
Candidate 4 is Robert Write-In, etc

and if the central gets two condorcet matrices that have the same 
candidates in different order (or share some candidates), it flips the 
rows and columns to make the numbers the same before adding up.

"Writing in" with the switches-and-display GUI would still be very 
difficult, however; I recognize that problem.

> We know that failing is possible with defective computer systems.
> 
> I claim that those willing should be allowed to demonstrate, and deliver 
> if they demonstrate ability, good computer systems.
> 
> Agreed the average voter cannot demonstrate quality of systems, though a 
> few have failed so miserably that even they should notice.

I don't really like computerized voting, since I think it solves a 
problem that isn't there while complicating things a lot. But if voters 
insist upon computerized/machine voting, then we might as well do the 
best of it, and in my opinion, it would be better to prove positively 
(that everything it's supposed to do, it'll do correctly no matter what 
happens) than negatively (that it won't err), because there's so much 
more potential for something to fall between the cracks in the latter 
case than in the former.

The specialized conclusion follows from this, because in the general 
purpose computer case (without your own OS or something with a security 
microkernel or similar to ensure the validity of the proofs) you have to 
prove that the display driver doesn't mess with memory it shouldn't, 
that the keyboard driver doesn't, and that basically the entire OS works 
as specified.

> Some talk of printing copies of the ballot:
>      Certainly voter should have aid in verifying the ballot.
>      But I do not see need for printing such.

One idea that came to mind when considering this and Kathy Dopp's 
statement that voters don't check their ballots, is this: have the 
machine print the ballot (underneath glass) on a transparency. The 
system is set up so that the screen is monochrome in one color and the 
printer is monochrome in another. Then overlay, very precisely, the 
printed ballot on top of the monitor. If there are any discrepancies, 
then those will stand out because there'll be a color mismatch. The 
printed ballot is what counts - no in-memory count is kept.

It would require very precise alignment and wouldn't do anything for 
colorblind voters, and the GUI would have to look (if not act) just like 
the paper ballot so that the confirmation isn't on a separate screen 
(which would defeat the purpose). Those requirements may be too strict 
for the method to work, but I mention it anyway in case it isn't.

The point of using the printed ballots as what counts is that as long as 
the voter checks the result, there's no way for the computer to "keep 
two books" - to tell the voter the ballot registered was for X while 
secretly registering one for Y instead.

>      I am for a record on disk of each ballot, but done in a maner to 
> not destroy secrecy.

You have to be very careful when doing so, because there are many 
channels to secure. A vote-buyer might tell you to vote exactly at noon 
so that the disk record timestamp identifies you, or he might, in the 
case of Approval and ranked ballots, tell you to vote for not just his 
preferred candidate, but both the low-support communist and the 
low-support right extremist as well, so that he can tell which ballot 
was yours and that you voted correctly.

Perhaps one could have a compromise by repeatedly record the Condorcet 
matrix so far (or Approval counts, in the case of Approval) once they've 
changed sufficiently. That idea may have more subtle flaws, but those 
may also be fixable; I don't know if either is the case.

Finally, the disk record won't help if the machine is compromised. If 
pre-election polls show the incumbent at 47% and the challenger at 53%, 
and the machine changes challenger ballots to incumbent ballots at a 
rate of 7%, prior to those ballots being written to disk, nobody will be 
any wiser. Even an individual ballot record would just show that 7% of 
those that in reality voted for the challenger, voted for the incumbent 
instead, as if having changed their minds just before the election.

(If you go further in this vein, trying to fix that attack, you 
eventually end up at cryptographic zero-knowledge proofs, which aren't 
really "disk records", but more than that.)

> Disk records should also report what, of a 
> suspicious nature, may have been done to the system.

That's a good idea, but it should probably be network based instead of 
disk based so that the virus (if one is introduced) can't just wipe its 
tracks afterwards. Or use some non-erasable medium like aforementioned 
PROMs (or a CD-R for that matter).



More information about the Election-Methods mailing list