Monday, November 01, 2004

The California Diebold VIBS Memory-Leak Problem could change the election outcome.

California has apparently deployed electronic voting machines with memory leaks, and this could change the election outcome. As Steve writes below, my parents run the polling place in their Alameda County, CA district (Steve and I are brothers). They got that memo with their Diebold eVoting machines from the county.

The described problem is exactly what one would expect from a memory leak. A "memory leak" happens due to bad programming -- the program, while executing, over-writes memory which the programmer didn't intend for it to.

If the program only over-writes part of itself, then shutting the computer down and turning it back on -- as the memo instructs -- will solve the problem, no harm done.

However, if your program has memory leaks, it means can't find your ass with your hands as a programmer. You can't account for your memory-writes. The program, while executing, can over-write anything which is in memory -- such as votes. Shutting your computer down and restarting it won't restore the votes. In fact, you wouldn't even notice they were gone.

It could be much worse than this -- if the memory leak accidentally over-writes the votes, it could fill the memory position where the votes were with junk -- so we would get out complete gibberish, and the votes could not be reconstructed.

A problem like that threatens the validity of the California vote.

4 comments:

Derek said...

Bob, you don't know that the votes are being tallied in volatile memory. In fact, my guess would be that they are saved to flash memory as each is recorded, so they are non-volatile and impervious to the memory leak.

I should say at the same time that this is NOT the sort of problem we should have to tolerate with our voting system, and "guesses" like the one I make above should not be required in order to assure voters that their votes are being counted.

Electronic voting machines should (1) Run open source software; and (2) Produce voter-verifiable paper trails. Anything less - including, most especially, these Diebold systems - is an abomination.

Unknown said...

Wow, Derek. That sounds like a very useful design. Write your votes out of non-volitle memory to a flash card, and tally them there.

You believe these machines do this on what basis?

You say I'm guessing at how the machines work, and that I'm guessing they aren't designed well, in a worse-case scenario (indeed, I do).

You, on the other hand, are guessing that they are designed well, and probably there's nothing wrong.

We have no evidence that your guess is correct. There is abundant evidence that mine is.

Derek said...

Hi Bob - to the contrary, the fact that their remedy for a memory freeze is to reset the machine suggests to me quite strongly that the votes are stored in non-volatile memory.

Anyway, it's silly to argue about it. I went to the Diebold website and found this quote about the machines:

All ballots cast using the AccuVote-TSX are immediately encrypted and stored in multiple locations within the voting station to provide secure system redundancy. Non-volatile memory is used to ensure election results are securely protected. So it looks like I'm right - non-volatile memory it is.

Unknown said...

Yeah, I'm sure you can find on Diebold's website that their machines are highly tested, too.

Sorry, but the existence of a memory leak is proof that they don't understand their program. Even when they say that they do, on their website.