I'm from Estonia and Estonia has an e-voting system. It seems to be relatively decent as far as decent can be, but I still don't like it.

Estonia's government issued ID card has a chip on it, like a debit card. The card contains a private key. The card uses a two-factor authentication system: you have the physical card itself (with the private key) and 3 PIN codes. PIN1 along with the card is used to identify you. PIN2 along with the card can be used to give electronic signatures. A PUK code along with the card can be used to unblock the card if the user enters a PIN incorrectly 3 times in a row.

The system is pretty convenient. It allows us to do things like online banking, give electronic signatures on documents (you put the file in a container and sign the container), and also electronically vote. Effectively, it's a way to electronically verify whether somebody is who they say they are, and this verification is backed by the government.

It is convenient to electronically vote. Some time before election day people can cast their vote via an application on their PC. They can vote multiple times. Online voting ends before election day and anybody can go vote in person even if they've cast an electronic vote. The last vote cast counts. This makes buying votes ineffective, because a person could sell their vote any number of times to different candidates. After you vote a QR code appears in the application. You can read that QR code with your smartphone to check on your vote for 30 minutes or 1 hour after voting.

The server side source code is open.[0] The votes get moved to a counting server and get counted. There are quite a few issues in this process as found by an independent audit.[1] (I really recommend reading it if you're interested in this topic.) However, most of those problems seem to be relatively unlikely or at least there's a good chance we would know that something is fishy.

However, I don't like e-voting. I have three main problems with this system:

1. The system is opaque to the layman. The government can take every step to ensure transparency in the e-voting process, but it doesn't matter to the average person. An average person doesn't understand enough about how software and computers work to be able to tell whether foul-play was happening or not. The process of voting in person, counting those votes and tallying them up are much easier to understand. It's easier for an average person to tell whether the in-person voting process is being tampered with or not. I think this point alone makes e-voting a bad choice.

2. It relies on the security of the average user's devices. It's conceivable that a large scale malware attack could compromise the machine the user votes on and the device the user uses to verify their vote. It's unlikely, but Estonia is small - it can never put in the resources that a large country could.

3. It relies on the security of third party software and hardware. If consumer/enterprise hardware is compromised on a global scale, then that likely means that the e-voting system is vulnerable too.

E-voting is more convenient, but ultimately I think that such convenience is overshadowed by the risk. In person voting in Estonia is very easy (at least in cities). It has never taken me more than 10 minutes from arriving at the voting location to leaving. If the goal was to just make voting more convenient, then they could've just added more voting booths and put them in supermarkets.

[0] https://github.com/vvk-ehk

[1] https://estoniaevoting.org/findings/summary/