23rd Apr 2019

Truly Decentralized Voting System powered by Blockchain (Version 1.0)


Written By, Yuvraj Upadhyay


Think what would happen if the voting system is 100% transparent, no central authority owning it, no changes allowed to be made to the ledger, voters identification remaining confidential and lastly the entire voting process remaining fully transparent. At Yudiz, we have developed a system having similar functionality.

We will cover the following Topics in today’s Blog:


Blockchain Technology and Online Voting

To develop a truly decentralized system, we need to first devise a system that ensures voter registration that would guarantee the anonymity of voters and also ensuring that everyone casting a vote were authorized to do so and that no one would be able to vote more than once in the same election and also ensuring that vote given by the voter cannot be changed, which can only be achieved through blockchain.
A Centralized system solves this problem by using an official census and polling stations. But in the case of a decentralized system, we cannot afford to rely on this process.

Blockchain technology allows secure management of public/private ledgers where all transactions are verified and securely stored on the blockchain network.


By using the blockchain technology a truly decentralized voting system can be implemented.

At Yudiz we had developed a system with the use of Hyperledger platform which provides all the features described above.

Why we used Hyperledger?


Hyperledger is a platform on which we can code & develop blockchain applications. For doing so, it provides various types of frameworks and tools.

In our voting system, we have used hyperledger fabric framework and hyperledger composer tool because different participants in a voting system like administrator, election authority, candidate and voters do some interaction with the system – so each of these needs to have some type of digital identity. These identities really matter as they determine the exact permission over system resources and access information which is in a blockchain network. Since it provides this great functionality, which is why we use hyperledger fabric framework.

Let’s look at how our system works.

The flow of our system

Step 1: Voter’s Authentication

We need to make sure that each voter is authenticated and eligible for the vote. For that, we have used Employee Id and Employee Email. When a voter enters his/her employee id, we will verify the voter with a simple OTP verification.

Step 2: Issue Identity

Identity is a very crucial part of this system. Each participant in this system needs Identity to interact with the network. Even the administrator holds an Identity with a limited level of permission.

This Identity is encapsulated in an X.509 digital certificate and generated by a hyperledger fabric network. This identity has a .card extension which holds the credentials for connecting to hyperledger fabric networks like connection profile for connecting to the business network, user ID and enrollmentSecret of the user. This Identity file is unique for every user.

Each of these issued identities has exact permission depending on the type of participant. Like administrator can issue identity to voters but cannot vote himself. The voters can only vote once, the administrator can not read data of the voting transaction. It is due to hyperledger blockchain feature. This transaction data remains hidden forever by the rule defined in the Smart Contract.

Once a voter is verified, Identity is issued to the voter with only permission to give vote once. That Identity card file is sent to voters’ email address. Despite the fact that email has a low level of security, the voter can feel confident about the authenticity,
security and transparency of the voting process.

Step 3: Voting Process


Now it is time for voting.

When the voting process starts, the voter needs to upload an identity card file. After voter had uploaded card file, the voter will get connected to the blockchain network with his/her identity and can vote if identity is valid.

Step 4: Result

Result of the voting process is fully transparent. Whenever the voting process will end every voter can see who is the winner of the election.




I hope this blog will help you to understand the flow of a voting system on the blockchain with more transparency and more security. We are continuously upgrading our system that will be very easy to use for the user. If you have any suggestions in this system then please drop your comments here. We will really appreciate your suggestions.

I would like to thank Meet Siraja for being so supportive to complete this blog.

That’s all for now. Thank you for reading this blog. Signing off.

Written By,

Blockchain Developer at Yudiz Solutions Pvt. Ltd