I think one needs to see what are the features that one wants for an election in general, and see how different systems cope with it.
An election should provide:
- transparency: all the process of vote, and counting has to be verifiable by any citizen.
- independent vote: all the citizens can vote according to their opinions, without external pressure.
- security: each and everyone can only vote 0 or 1 time, and their vote cannot be altered by someone else.
- universality: the voting process is free and opened to everyone, regardless of age, social status, sex, ethnicity, etc.
I am mostly familiar with Western European votes, so the examples and illustration will represent more what happens there.
The universality is in principle the easiest to comply. You charge no fee, and provide the same access/choice of accesses to every citizen. There are special cases that will be treated further below.
Transparency means that one should check that no votes were done before hand, or that no one votes more than once. In pen and paper, this is done by having transparent ballots, which are empty at first (and can be seen by the first voters), and under the supervision of one of two people (typically representing different political parties). The transparency also implies that the voting process is public. Every citizen can come and see that voting is made correctly. Not counting each vote twice for one party. This is also supervised by different political parties, which (should) ensures a fair process.
Independent and security are hard to get. Because security implies the identification of the voter, and independence, his anonymity. In paper-and-pen, this is done with a two steps process. The person is checked once, but the closed envelope ensures that the content of the vote is anonymous. And the more voters, the more the vote becomes anonymous, as it gets impossible to attribute each envelope to each voter at the end.
And interesting feature of pen and paper is that the result can be challenged and the votes counted again. It slows everything, but it is rarely challenged.
Case for electronic process
I would consider three systems and see what they should provide to fill in the requirements above.
- Online voting,
- Electronic voting on-side with ID (EA),
- Electronic voting with manual ID (EM).
In this section, I would consider only "pure" implementation of those, and not a mixing.
Apart from special cases that will be discussed further below, the universality of those are quite easy to implement. The electronic machines are on the spot, same as paper ballot. Online, becomes limited to "everyone who had internet connection", unless some dedicated (free) internet spots can be organised for the others.
In online and EA cases, the identification of the voters are made with a unique ID given to each voter. It is unclear how one can ensure that the voter do not provide his/her vote to someone else (possibly against money). But in exactly the same way, they may vote themselves according to money received before hand. There is nothing in the current systems that prevents this type of fraud, except the risks it implies. Which would be the same for both Online and EA.
In EM, the identification is done pretty much like the current one. This "as good as it gets", seeing that it is separated from the voting process. A chip or a time constraint may prevent anyone from voting more than once.
Independent vote is not easy. For the EM, as it is independent from the identification, it works simply. You can still coerce people into voting for your candidate, with pressure outside the voting place, no curtain or anything to isolate you, etc. But those problem are already existent today. So, if it does not improve on that, it does not get worse.
Online and EM are harder: the identification and vote aren't really separated. This can be achieved with some crypto algorithms, which encapsulated and encrypted vote in an identification system. That was discussed in another answer (possibly on the related question).
Encapsulated encryption is also a way to provide some level of security on alteration of the vote. This is particularly critical on online system, to avoit MitM attacks. Assuming the EA/EM machines are trustworthy.
This leads to, IMHO, the major issue with any form of electronic system: the transparency. How to ensure that no votes are added/removed? How can the voter ensure that his/her vote was really counted and not modified? Etc.
There aren't any mean for normal citizen to control the voting score: you want to make it protected to prevent alteration. Furthermore, you don't want early voter to influence the later voters so you can't publish the results in real time. Any way, you might consider you loose in transparency compared to the standard paper-and-pen vote. The best is to have independent people controlling that the counts are correct. Ordinary citizen are relying on their judgement.
Released open-source code would offer some form of transparency, which, if it doesn't the same universality in transparency, offers all the IT-educated people to actually check. But in EA/EM cases, you can't ensure that the released code is the one being deployed.
For a correct program, counting error should be greatly reduced compared to paper-and-pen vote. But you can't challenge the output without reorganising the election (at least locally).
There are some cases that need to be considered in all systems and I am not sure what are the best solutions for all of them.
- Old people. Very old people can't move to vote. Using electronic devices and internet seems to be out of the question as well. With increasing age of population in most Western countries, this will be an increasing problem.
- Sick people. Some people may be sick and forced to stay at home the day of the election. You need to consider some form of remote way to vote.
- Travels. For business or leisure, more and more people travel, including on week ends. How can they vote?
- Living abroad. This is an extreme case of travels. People can't be expected to fly from Siberia to Alabama to vote. How are they able to vote, without travelling too long distances?
I am aware of three elements to deal with those. Possibility to transfer the vote. Someone may vote for you, and as you choose who, you can trust that person. Mail. You vote by mail and special ballots are organised to collect those mails. Representation abroad. It is possible to vote in consulates. However, this works fine when you leave in a country with a high number of co-citizens as you would expect to have consulates not too far from your place. But again, in the middle of Siberia, it might be complicated.
As is often the case, no perfect solution exists. Electronic votes usually fail utterly when it comes to transparency. They improve on (honest) issue with counting, and might improve the speed of the voting. Internet/online vote may solve some special cases. But on the whole, they do not improve on the existing system in term of required features, and often get lower.