In every democracy, elections are one of the most essential and fundamental parts of the economy. Hence, every democratic country aims to implement a fast, robust and secure voting system that rules out problems of data (votes) tempering/modification, the inability to vote by a registered voter due to their current location and the assurance that the voter’s vote has been counted and has been counted correctly.

Electronic Voting Machine (EVM) is one such device used for voting at the ballot. However, it does not solve the above-mentioned problems faced by the voters. The Election Commissioner of India, Mr. Sunil Arora, in February announced that the Election Commission of India would collaborate with IIT to develop a blockchain voting system that rules out the problems mentioned above. However, considering the lack of available technological infrastructure in the deep interiors of the nation may pose certain problems. This article gives out one of the best blockchain solutions (blockchain-based e-voting systems) that can be implemented for voting cost-effectively and also tries to evaluate its viability in India.


A blockchain is a distributed, immutable, incontrovertible, public ledger. In simple words, it is a distributed database that is shared by all the members of a network where data can be recorded and audited but cannot be modified or manipulated. If a modification is needed, a new block has to be created by referencing the old block in the ledger. Thus, the data in the old block remains intact while new data can be stored in the new block in the ledger. For maintaining security, blockchains operate through advanced cryptography that helps them become more secure than the normal database.

In a blockchain, the blocks are chained such that every block has a hash that is a function of the old (previous) block, thus making the chain immutable. For every transaction made on the blockchain, the chain is replicated, cryptographically signed and publicly verifiable. This ensures that the data, once entered in the blockchain, cannot be tampered.

There are three main types of blockchains i.e. public, private and consortium-based chains. In public blockchains, any user in the network can read and create a transaction in the blockchain. A consortium blockchain is a partially decentralized blockchain where the access to read may be granted to the public or may be restricted to a few participants. However, the consensus process to enter/write a transaction is controlled by a few pre-selected nodes. In private blockchains, the access to read and write a transaction both are restricted to specific participants only who have to be verified before accessing the ledger. However, using a private network restricts an eavesdropper from monitoring and reading the data in the blocks and hence provides the much needed personal identity and voting security in the voting process.

To understand the basic terminologies used in blockchain technology, please refer to our previous article here.


The following blockchain-based e-voting system is the system proposed in a paper by Fridrik P. Hjalmarsson, Gunnlaugur K. Hreidarsson from School of Computer Science, Reykjavik University, Iceland. Their system seems to be the “ideal” one, however, it is no exception to limitations which are mentioned later in the article. However, this can lay a foundation for understanding how the blockchain technology can change the way we vote and help in maintaining the authenticity of the votes we cast.

For the blockchain voting system, they use “smart contracts” that are used by Ethereum which is a digital agreement that is self-verifying and self-executing; and “non-interactive zero-knowledge proof (NIZKP)” which is a transaction verification process with no interaction between the prover and the verifier.

There are 4 roles involved in this election process. These roles can be performed by multiple institutions and people for a smooth electoral process.

  1. Election administrators – they create the election, configure the ballots, register the voters, decide the time span of the election and assign permission nodes (in simple words, nodes are the participants in a private network that are trusted and can read the data either entirely or partially).
  2. Voters – we voters need to authenticate ourselves on the online platform provided by the government. Only after proper authentication, we can load the ballots, cast the vote and then verify the vote cast after the election is over.
  3. District nodes – when the election administrators create an election, each ballot is given a ballot smart contract. These ballot smart contracts represent the voting district. The district node then is given permission to interact with its respective ballot smart contract. Every vote cast from the ballot smart contract has to be verified by all the district nodes in the network. Every vote agreed upon by all is then appended onto the blockchain post the block time.
  4. Boot nodes – it helps the district nodes to discover and communicate with each other. In order to help the district nodes find each other faster, boot nodes are run on static IP.

The election process thus includes the following activities:

  1. Election creation – it is done by the election administrators where they configure the ballots, creates ballot smart contracts, assigns and give permission to district nodes and boot nodes, decides on the lifecycle of the entire election process.
  2. Voter registration – through government identity verification service we voters can authenticate and authorize ourselves for casting a vote. An ID and PIN is generated for eligible voters. A wallet is created for each voter and a certain sum such as 1 ethereal for example is added to the wallet. A NIZKP is integrated while generating the wallet so that the system itself does not know which wallet matches which individual voter. It can be decoded only when the voter puts in the ID and PIN.
  3. Casting a vote – when the vote is cast by the voter, the sum in the wallet is transferred to the candidate’s wallet ensuring the voter cannot cast any more votes. The vote is thus stored as a transaction on the blockchain where the voter receives a transaction ID for verifying the vote later. The vote cast, interacts with the ballot smart contract, the ballot smart contract interacts with the district node and the node finally appends the vote on the blockchain post which the sum is removed from voter’s wallet and added to candidate’s wallet. The voters who do not or are not eligible to cast a vote for any reason whatsoever, the sum from their wallet is transferred to an abstain wallet ensuring no discrepancy.
  4. Tallying results – Each ballot smart contract does its tallying on its own and the final result for each ballot smart contract is published when the election is over.
  5. Verification of the vote – each voter can authenticate himself using the ID and PIN and then present the transaction ID. The transaction ID is matched on the blockchain and the voter can then verify that his/her vote was counted and it was counted correctly.


The above system may seem to be the best system, however, it is also exposed to a number of limitations. Some of the limitations include:

  1. An individual may vote for multiple people if he/she knows the ID and PIN of those people.
  2. In case of remote elections (eg.: votes cast from home), one cannot guarantee that the vote was not coerced (provided a video authorization is made before voting wherein if fear is detected on the face of the voter, he/she must come to the local ballot to cast the vote – as mentioned in the blockchain voting system proposed by Sagar Shah, Qaish Kanchwala and Huaiqian Mi from Northeastern University).
  3. There is no transparency as to who is the election administrator, the people involved in the back-end, etc. mainly due to the laws and regulations of the Election Commission.
  4. In order to maintain voter privacy, no individual vote should be traceable back to the voter.
  5. India lacks the technological infrastructure needed for a smooth implementation of the system, especially in the interiors of the country.


The current use of EVMs is definitely a flawed one. Anyone who has physical access to the EVM can alter the votes. In such a case, a blockchain-based e-voting system seems to be a good alternative. On average it may cost around $2 per voter which is not very expensive considering the high level of security and pace it provides while none of the votes can be modified. Sierra Leone and Russia have already implemented this technology in their elections successfully.

In order to implement a blockchain voting system, India must consider developing the technological infrastructure in the interiors especially. A basic requirement of computer and internet is needed. Cybercafes thus may come to limelight again. However, there is still a long way to go for India to effectively implement and adapt to this blockchain-based e-voting system. Improvising on its effective implementation will prove to be a savior of the essence of elections by eliminating corruption from the process altogether.

MSc Finance graduate from the London School of Economics and Political Science (LSE)
Avatar for Ria Vaghela

Ria V Vaghela is an M&A Executive at RSM UK and an MSc Finance graduate from the London School of Economics and Political Science (LSE). She has worked at Jefferies, Dial Partners and 7i Capital prior to RSM UK gaining an experience of about 1.5 years. She has also worked as an Editor and Content Writer for The Representative Media. Apart from finance, she is interested in reading books on psychology and economics and also likes to paint and play lawn tennis


  1. Avatar for Ria Vaghela Pawan Gujral : March 21, 2020 at 6:57 pm

    Fantastic research well done Ria. Very thoroughly researched
    Very insightful,educative and iformative

  2. […] has gained significance in the recent years. Active discussions and considerations to deploy blockchain voting system, blockchain based government data management, blockchain payments and currencies (cryptocurrencies) […]

Leave a Reply

Your email address will not be published. Required fields are marked *