Estonia Publishes the Source Code of Its Online Voting System for Public Review
Source code of the Estonian online voting system
The valimised/ivxv repository makes the code behind Estonia's legally binding I-voting system available for anyone to inspect. It isn't used for active development but is kept current, so what's published is what runs in elections. Development is overseen by the State Electoral Office of Estonia, and the codebase spans Go, Java, Python, and more, including voting, verification, and auditing components.
The repository is not used for active development, but will be kept up to date, so the code that can be found here is the code that is used for election.
- cryptonector
Fully software, even a combo of software and hardware, cannot by itself make elections secure. Think of the Reflections On Trusting Trust problem, the need to verify firmware, etc. You can't ensure that machines _will_ work correctly, but you _can_ verify that they _did_. To do verify the machines' functioning after the fact you have to do it very soon after closing of the polls, and you have to devise a manual, statistical random sampling method where you manually check randomly sampled, marked paper ballots, against the digital cast vote record, then do a digital risk limiting audit to check that the CVR totals up to the machines' reported results. The sooner after closing of the polls you do this, the better the likelihood that any cheating will be caught. I.e., an immediate manual, partial audit of enough randomly-selected polling locations.
That still leaves tons of other technical problems to address, like security of mail-ballots / absentee ballots, the security of ballot boxes used for early voting (because you probably cannot run the above manual partial audit due to then having nightly results available to the public; or maybe you accept that), voter registration, etc.
- kuratkull
I'm Estonian. E-voting is widely accepted and used here. We've been doing it since 2001, and extensivelly (first parliamentary e-voting) since 2007.
The fact that it's open source is long known (at least in the IT community) and highly appreciated.
There's no inherent doubt about its validity in the local expert and international community.
- AndroTux
Living in Estonia, I have a hard time deciding how I feel about this voting system.
Currently, with people trusting the government, this system is great. I can just cast my vote online, like I do everything else here, and I can be reasonably sure that my vote is counted thanks to the aforementioned trust in the system.
But I really fear the day that trust erodes.
On the other hand, though, once the trust is gone, I think it doesn’t really matter whether it’s an analog or digital count. People won’t trust the system anyways.
Then again, there’s a lot of nuances and different levels of trust, which is the reason why I don’t know what the right answer is.
- devin
There are a lot of folks who, whenever this topic comes up, seem to have no knowledge of the systems which already exist and have actually been used in real elections already. For instance, ElectionGuard has been used in several real elections in the US since 2020[1].
- aussieguy1234
Any computer hardware or software that there is a big enough incentive to compromise will be hacked.
We saw this with the Bitcoin wallets recently, with hidden 5g modems being added in a supply chain attack. The payoff in this case for the attackers was large enough to motivate them go to such extreme lengths.
Interfering with a democratic countries elections is a pretty big incentive for across like Russia. They also have the resources to do it.
- SP3269
Lots of concerns in the discussion yet the fact is that e-voting is used for quite a long time in Estonia, and proved robust and secure. It will scale well. Check the source code.
I believe the Swiss also open sourced their e-voting software.
- samat
Interesting that there are no updates for almost a year. Cool stable software, I guess?
- pelagicAustral
The answer is paper backed by an ID, but i guess is too late for that.