The general elections in India are over. During and before the election process, there was much debate about the security and integrity of the EVMs. In this article, the author suggests using the blockchain as a tamper-proof secure method of voting and thus safeguarding democracy!
‘Michael Kohlhaas’ is a novella by Heinrich von Kleist written in the early 19th century. It is about a person’s almost pathological quest for justice and the book had a profound effect on me. Human beings find it very hard to cope with unfairness, real or perceived!
I was fascinated by an experiment by a Danish political party using the blockchain for online voting. That was in 2014. If people can trust the system enough to transfer Bitcoins in spite of its anonymity, why not use it for voting? There have been a number of open source projects since then, trying to create voting systems based around blockchains (https://nulltx.com/4-blockchain-voting-projects-disrupting-the-world-one-step-at-a-time/).
Aside from the fairness of the election process, the cost of organising the election itself, not including the campaign expenses, is also a very critical issue. If the cost of organising an election is sufficiently low, the possibilities of changing the process to improve its responsiveness to the needs of the citizens, can improve dramatically.
How the blockchain voting concept works
Each voter gets a coin for each election. The coin expires after the election date. Each candidate has a wallet. Each voter transfers his or her coin to one of the wallets of the candidates.
The blockchain will ensure that the vote cannot be altered. It will ensure that no single entity is in control of the ledger. Anyone can use the ledger to calculate the totals. Each voter can verify that his or her vote has been counted. An example of an open source project for online voting can be found at https://followmyvote.com/online-voting-technology/blockchain-technology/.
Is it anonymous?
In the case of Bitcoins, the wallet is anonymous. Each Bitcoin transaction has to keep track of the source and destination wallets. Besides, an individual may have many wallets.
In the case of voting, there needs to be a central authority that creates a wallet and transfers the voting coin at the time of an election. Also, the destination wallet has to be public. However, the source wallet has to be anonymous. This can be ensured, for example, by coding the voters’ wallet identities with their public keys. In which case, only the voters themselves can access the data using their individual private keys.
In order to vote over the network, some mechanisms like routing traffic through Tor can ensure that the source IP remains unknown.
Is it secret?
Unfortunately, the answer is that the vote is not secret. The reason is that if voters can see their own votes, they can be compelled or incentivised to show their vote to a third party. If a voter can verify his or her vote, then there is no way to ensure that the voter cannot show it to anyone else.
The ‘Freedom to Tinker’ website offers a solution (https://freedom-to-tinker.com/2018/11/05/end-to-end-verifiable-elections/). The solution suggested is that the vote itself is encrypted. The voters can get to know that they voted but not for whom. This requires the voter to trust the machine not to alter the vote during the encryption process. There is an option to ‘spoil’ a ballot and re-vote. The spoiled votes are decrypted and printed after the election. So, if even a small number of people spoil the ballots as suggested on the site and check, it may be enough to keep the system honest.
There are instances in which the secrecy of the ballot may not be as critical. An example that comes to mind is the Danish political party’s elections mentioned earlier. Inexpensive and simple to implement election processes can help improve the internal democracy of a political party.
Furthermore, many more people may join a political party if they have a voice in the party’s affairs.
Who adds a transaction to the blockchain?
A group of systems and nodes keep track of the ledger. However, the ledger has to be consistent. If anyone can add a transaction, how do we make sure that it is consistently added across the nodes? In a distributed system, the transactions may arrive in a different sequence on various nodes. There needs to be an agreed-upon protocol, which can be trusted by all, in order to prevent a rogue system from dominating the blockchain.
In the case of Bitcoins, the miners approve the transactions. They get the right to approve a transaction by solving a complex mathematical puzzle as a proof of work. This is necessary and an essential part of keeping the growth of Bitcoin currency in check. This, though, becomes a limitation when it comes to scaling the transaction rate.
In general, there is a need for protocols that ensure that a consensus is reached within all the active systems. Once the consensus is reached for a block of transactions, the agreed version of the truth is published, made available across the nodes and cannot be altered. Since the vote can be audited at any time, the protocol chosen for building consensus does not have to be very complex and computationally expensive for this case.
Why should we opt for this kind of voting?
The first advantage is that there are no hidden machines or code. Everything is open for anyone to audit, including the data. The code and the process can be used anywhere, not just during major elections. A first step could very well be the university elections, including experimentation with near zero cost for canvassing.
It can help modern parties start with internal democracy, as a default. The relative strength of various sub-groups need not be in doubt.
If the cost of holding an election is low, a run-off election, the option to recall a representative, or an automatic re-election in case a person wants to quit a party to join another — all become viable options.
Many countries across the world are beginning to experiment with this approach. There is no reason we shouldn’t, especially if we wish to move ahead and lead in software technologies.