As I wrote in my previous post, a California county uncovered a problem with its voting system software only because the county's registrar of voters had decided to implement an innovative public auditing program.

That program, the Humboldt County Election Transparency Project, was launched by Carolyn Crnich, who has been the county's registrar of voters since 2002. She created the project with help from a dedicated group of volunteers that included former Green Party presidential candidate David Cobb, an employee of the Humboldt County district attorney's office named Tom Pinto, and three citizens, Kevin Collins, a commercial fisherman, and Parke Bostrom and Mitch Trachtenberg, two technology experts who had a strong interest in finding a way to ensure the integrity of elections. They've documented their efforts on a web site to help educate groups in other states and counties who may want to replicate the project.

Humboldt County uses paper ballots that are scanned by an optical-scan system made by Premier Election Solutions (formerly Diebold Election Systems). Under the Transparency Project, after the ballots are officially scanned and tabulated by the Premier system, they're scanned a second time by a separate commercial scanner, not made by any voting machine company, so that the ballot images can then be posted on the internet for the public to examine and conduct independent recounts.

Every ballot image is imprinted with a unique serial number as it's scanned through the commercial scanner to verify its authenticity, and batches of ballot images are hashed to verify that they haven't been altered before they're posted online or saved to DVDs.

To make it easier for the public to tally the votes, Trachtenburg, an independent programmer who has launched a company called Trachtenberg Election Verification Software, wrote a program pro bono to allow anyone to sort through the Humboldt ballots by precinct or race. (Trachtenberg has posted the latest development release online for anyone to examine.)

The sorting software, called Ballot Browser (image above right shows the software's user interface), is an open source program written in Python to run on a Windows or Linux platform. The Humboldt version is running on Debian Linux Etch and uses a Fujitsu high-speed scanner also using Debian Linux.

Ballot Browser displays each ballot in a window and highlights the spot where it thinks the voter has made his choice. The display can be turned off to speed up scanning to 1,000 ballots an hour.

Crnich said she got the idea for the project from Kevin Collins, who expressed concerns during a public meeting about the trustworthiness of proprietary voting systems. He wanted to know why it wasn't possible for everyone to examine every ballot.

"That was the seed," Crnich told Threat Level.

But getting ballots into the hands of the public presented a problem. California's election law says that once ballots are scanned and sealed in containers by poll workers after an election, they can't be re-opened except to be recycled or destroyed or unless officials suspect there might be something wrong with the ballots. Crnich determined that the latter provided a possible loophole. Since there was already a strong public perception that there was something wrong with the ballots, she concluded that this was the permission she needed to make the ballots available for public perusal.

Trachtenberg said he came away from his first meeting with Crnich feeling very pleasantly surprised.

"I just thought, 'she gets it, she gets it,'" he said. "I had contacted the previous election staff years ago complaining in particular that the [voting] system wouldn't leave a paper audit trail. So I was really pleasantly surprised when I discovered that Carolyn was behind the idea of election transparency and wanted to get on board."

Crnich convinced her board of supervisors to purchase an off-the-shelf Fujitsu high-speed scanner and the group launched the project in limited form during the June primary. Trachtenberg said before the launch they had trouble getting the scanner to work with their Linux scanning program, but contacted M. Allen Noah, administrator of the SANE Project (the open scanning protocol known as Scanner Access Now Easy that works with Linux), who advised them on how to make it work.

It took about five days to scan about 32,000 ballots cast in the primary election. The ballot scans amounted to about 8.2 GB of data and filled up 3 DVDs. They didn't actually do a re-count of the ballots in June, however. They just did random spot checks to establish that their system worked. The number of ballots they scanned with their Fujitsu matched very closely the number they had scanned with the Premier system, with the exception of one or two ballots.

The November election, by contrast, was more complicated and took 65 hours to scan because the election involved 64,161 ballots that were double-sided.

The volunteers were deputized before they started the project, and the chain-of-custody on the ballots was carefully controlled throughout the process. A county worker removed the ballots from secure storage, and the ballots were never left alone with one person at a time. The workers had to fill out forms carefully tracking the time the ballots left secure storage, the time at which they were unsealed from containers, and other steps.

Crnich said the partnership of technical experts with election staff turned out to be the perfect combination.

"With my willingness to say yes let's do what we can to make this a transparent and trusted election and with Mitch's ability to develop the software in open source and make it available, it's worked out I think to the advantage of voters in Humboldt County," Crnich said. "[The point] was not to catch anybody or anything, it was just to make the information available to the public. Here it is. If you question our results, please look at it yourself."

Once they'd finished scanning the November ballots, they knew immediately they had a problem because the number of ballots they scanned through the Fujitsu printer didn't match the number of ballots that had been tabulated by the Premier system.

As I reported earlier, they discovered that the Premier system had dropped a batch of 197 ballots from its tabulation software. The voting company has acknowledged that a problem with its software caused the system to drop the ballots and that the software has contained the error since 2004.

Trachtenberg said the problem they discovered underscored for him that proprietary voting systems and "secret counting" methods aren't in the best interest of democracy.

"Without any allegation of fraud, programmers make mistakes. And sometimes people like to hide their mistakes," Trachtenberg said. "If it's possible for people to do an independent count, they should be allowed, and we're very fortunate in Humboldt that we had a registrar who not only allowed us to do an independent count but made it as easy as it could be. I think what you'll find is a couple if years from now, this is going to be thought to be just common sense."

The ballots from the November election haven't been placed online yet because they're still looking for a volunteer with sufficient bandwidth who is willing to host the data. In the meantime, members of the public can request DVD copies of the ballots by contacting the Humboldt County elections office.

Here's a video of Trachtenberg discussing how his open-source ballot software works.

See also: