As of this writing, the entire United States has been anxiously awaiting to hear the results of the 2020 general election. Although former Vice President Joe Biden has been elected – with one notable dissenting opinion – I have no way of knowing if my own ballot was counted or declared “fraudulent” and rejected. It is important.

Last week there were reports of voter intimidation, polling station closures, fears of lost and late ballots and accusations of electoral fraud. The COVID-19 pandemic has resulted in unprecedented levels postal voting, a method that is secure but relies on an already funded infrastructure and spread thin. These problems are all in addition to the usual low participation rates and the legacy of suppression of voters in the USA

Nate Williams is a recent graduate and full-stack developer at Vocdoni, an electronic voting project based on open source technologies including Ethereum, zk-SNARKs, and IPFS.

The chaos surrounding the 2020 election has exposed cracks in the state of America’s democracy. While much of this uncertainty stems from broader social and political issues, at least one error can be attributed to the way the election itself was conducted.

This election has clearly shown it: the electoral systems of the 19th century were incapable of adequately expressing the will of such a large, diverse and fractured population. We need a better way to make decisions.

Is digital voting the solution?

What if we had a system where everyone could vote from their cell phone and open a browser to check the results of an election, all without having to trust any central authority?

This system would allow civic participation to change fundamentally as confidence in collective decision-making increases and barriers to direct democracy decrease. Many of the issues facing elections today, from lack of security to voter turnout and beyond, could be improved, if not completely resolved, through blockchain voting.

More and more people are starting to see digital voting as a valuable way to regain public trust. Binance CEO Changpeng Zhao and Ethereum co-founder Vitalik Buterin recently discussed the matter.

“Develop something now, get it approved (the hardest step obviously), and get over 300 million users (fully KYC) in 4 years. Any competent developer should be willing to do it ‘for free’, Zhao tweeted.

To which Vitalik replied: “The technical challenges of creating a secure crypto voting system are significant (and often underestimated), but according to the IMO, it is 100% correct.”

Despite many challenges, digital voting seems to be an inevitable way forward for many countries. So, rather than running away in the hope that it will never be implemented, we should face these challenges. The technologies behind cutting-edge cryptocurrencies have already been theorized to solve many of these problems, so they are a good place to start.

The dilemma of trust and privacy

There are a few reasons to be skeptical about our ability to conduct safe and secure digital elections – countless articles have been written on this topic. One of the most notable came from YouTuber Tom scott. As he explains, the main problem with voting can come down to a dilemma between two seemingly opposing properties: anonymity and trust.

The solution doesn’t start and end in the blockchain, and it’s not just technological.

The only way to fully trust the integrity of a system without depending on any authority is that it is end-to-end verifiable, accessible and transparent to everyone. But how is this even possible if the votes have to be anonymous?

Ensuring trust with blockchain

From the origins of the blockchain, it has been speculated that the technology could be used to vote. However, we have yet to see such a solution deployed.

Many projects claim to use the blockchain for voting, but most only use it as a mechanism to publish the votes that are collected and processed by another system. These claims are misleading, this use of blockchain does not solve the fundamental problems of digital voting. Votes can still be manipulated until the moment they are published.

See also: “Snake oil and expensive waste”: why blockchain does not solve online voting

In order to provide end-to-end verifiability, a blockchain voting system must allow ballots to be directly deposited on the blockchain. In such a system, any voter can ensure that their vote has been counted. In addition, auditors can verify the integrity of the system from start to finish.

A blockchain voting system could ensure that no votes are lost or altered in transit. Due to the open and distributed nature of blockchains, such a system is very resistant to DDoS attacks and lacks a centralized back end that could behave badly or become infected with malware. And, in particular, the results would be available at the end of an election.

Ensure confidentiality with zero-knowledge evidence

The astonishing transparency of the blockchain also limits its ability to ensure the confidentiality of digital voting.

A blockchain is a perfect structure for recording and ensuring the integrity of data, but it also makes it possible to trace the origin of this data. An anonymous voting system should separate transactions (ballots) from their origins. Enter zk-SNARKs.

See also: George Samman – The Trend Towards Blockchain Privacy: Zero Knowledge Proofs

A zk-SNARK is a state-of-the-art crypto-proof construct that allows us to prove possession of certain private information, without revealing that information. Applied to voting, a zk-SNARK circuit could allow a voter to prove that he belongs to a census and that he is able to vote, all without revealing his identity or allowing his ballot to be found by d ‘other.

This could be achieved by creating a “census” of participants’ public keys and using zk-SNARKs so that voters can prove their membership without revealing those keys. A more detailed account of such a model is found here.

So we can create a voting-specific blockchain where, instead of paying a fee, you can post transactions after proving you belong to the census by generating zero-knowledge proof.

It is an incredible construction; it almost looks like magic. We now have a ballot that has no signature, and therefore cannot be traced back to an address, as well as proof that allows that ballot to be included in an end-to-end verifiable blockchain. On top of that, the voter has to pay for gasoline or fees, so no tokens are involved.

Is this model resistant to attacks?

Strong public blockchains are inherently resistant to censorship attacks, but vote buying and corruption are also significant concerns.

Digital voting seems to be an inevitable way forward for many countries.

If voters are coerced, it will be possible for them to override their votes later, without fear of doubling spending. And there are clever tricks that make vote buying unsustainable by allowing anyone to present valid proof for any vote after the election is over.

What blockchain voting won’t solve

The solution doesn’t start and end in the blockchain, and it’s not just technological. Digital voting and elections present several challenges, such as accessibility and universal authentication, which require government participation and do not have simple technological solutions.

See also: Gregory Magarshak – In defense of the Blockchain vote

But these are issues that can be solved and reiterated with pilot projects and investments in better authentication mechanisms. The Achilles heel of this voting system is the user client application (equivalent to a crypto wallet). Confidence in the operating system and application implementation would likely be required.

So, can we have reliable elections using blockchain?

The first convincing examples of such a solution are starting to appear. I was exposed to the possibility of voting blockchain while working on Vocdoni Open Stack, an open source project which, for three years, has been dedicated to deconstructing the problem of decentralized voting.

We have designed a protocol and a set of libraries that provide radically new solutions to what until now has been an unresolved problem. A trustless, end-to-end, verifiable and anonymous voting system. Our technological infrastructure is accessible to the public here and has already proven itself with dozens of organizations including the largest cultural organization in Europe with nearly 200,000 voters.

It is a mistake to think that we can achieve the perfect digital voting system because 100% security will never exist. This is also the case for physical voting. But we can now build voting systems that offer our digital society guarantees equal to or better than those presented by physical voting.