Recounts, while essential, are opaque and tricky since there are no physical ballots. Current software today recounts by just running the same software program over again, which "to me is not a legitimate recount," Kiniry said.
One idea is to allow third-parties to create their own software that would verify the secure transmission of votes into the database, Kiniry said. Then, those parties could run their own tally software and recount the votes.
But what if each system comes up with different totals?
"Given the ambiguity we see in the law and the way ballot voting has taken place even without computer technology, it would in some sense be little surprise that there might be some ambiguities with computer technologies," Kiniry said.
Part of the trouble is putting what are sometimes vague election laws into a language that software can accurately execute. Ireland's election system, for example, involves the redistribution votes of losing candidates to those who have more votes.
It's possible -- and legal -- to come up with two different winners depending on how those votes are redistributed, Kiniry said.
"How do you encode that in software?" Kiniry said. "That leaves ambiguities. Counting is not easy."
One of Kiniry's colleagues, Dermot Cochran, a research programmer at University College Dublin, wrote a software specification of the Irish counting system for his master's degree dissertation. He used the Java modeling language to express the rules in a mathematical form. But he cautioned the system needs more testing.
"Other researchers would need to really confirm the security aspects of the system," Cochran said.
Kiniry concurs that even if their system proves to be a worthy piece of software, there are still too many social and political hangups around e-voting.
"Maybe someday we will have some degree of certainty where we can use it," he said. "I believe that day is quite a ways off. Unfortunately, we are going to see them [e-voting systems] used anyway."