Project Report Sem 5 Final
Project Report Sem 5 Final
Project Report
On
SUBMITTED BY
Varun Sahu
(22027171)
Vaibhav Jadhav
(22027168)
Himanshu Gurjar
(22027133)
This is to certify that the work which is being presented in the B.Tech. Mini Project
Report entitled Identity Management Using Blockchain for Secure Voting, in
partial fulfillment of the requirements for the award of the degree of Bachelor of
Technology in Computer Science and Engineering and submitted to the Department
of Computer Science and Engineering, Institute of Technology, Guru Ghasidas
Vishwavidyalaya (A Central University), Bilaspur, Chhattisgarh, India is an
authentic record of our own work carried out during a period from August to
November (5th semester) under the supervision of Dr. Suraj Sharma, Associate
Professor, Department of CSE. The content presented in this project report has not
been submitted by us or by anyone else for the award of any other degree elsewhere.
Signature of Students
………………………… …………………………
Varun Sahu Vaibhav Jadhav
22027171 22027168
…………………………
Himanshu Gurjar
22027133
This is to certify that the above statement made by the student(s) is correct to the
best of my knowledge.
Date: ........................................
Dr. Suraj Sharma
Associate Professor
……………………………
Prof. Alok Kumar Singh Kushwaha
Head of Department, Computer Science and Engineering
DECLARATION
_______________________________________________
We at this moment declare that the project entitled – Identity Management Using
Blockchain for Secure Voting, which is being submitted as a Mini Project of the
5th Semester to Department of Computer Science & Engineering Guru Ghasidas
Vishwavidyalaya, Bilaspur (C.G.) is an authentic record of our genuine work done
under the guidance of Dr. Suraj Sharma, Associate Professor, Dept. of Computer
Science & Engineering, School of Studies of Engineering & Technology, Guru
Ghasidas Vishwavidyalaya (A Central University), Bilaspur, Chhattisgarh. We also
declare that if any information we provide is false, we shall be held responsible for
the consequences.
We would like to place on record our deep sense of gratitude to Prof. Alok Kumar
Singh Kushwaha, Head of Department, Computer Science and Engineering, GGV
Bilaspur for his generous guidance, help and useful suggestions.
Varun Sahu
Vaibhav Jadhav
Himanshu Gurjar
Date:
CONTENTS
CERTIFICATE
DECLARATION
ACKNOWLEDGEMENT
ABSTRACT
LIST OF FIGURES
LIST OF TABLES
CHAPTER 1 INTRODUCTION
1.3 OBJECTIVE
1.4 METHOD
CHAPTER 6 REFERENCES
ABSTRACT
This project presents a blockchain-based solution for secure and transparent voting,
emphasizing decentralized identity management to address challenges in traditional
voting systems. The system leverages Ethereum's blockchain technology to ensure
tamper-proof vote storage, robust voter authentication, and privacy. Smart contracts,
developed and deployed using Truffle Suite, automate the voting process, while tools
like MetaMask and Ganache facilitate secure wallet integration and local blockchain
simulation. Web3.js and Node.js enable seamless communication between the
frontend and blockchain backend, ensuring real-time interactions. The proposed
approach enhances trust in electoral processes by providing transparency,
immutability, and scalability. This project demonstrates the potential of blockchain
technology to revolutionize voting systems, offering a secure, decentralized, and
efficient alternative to conventional methods.
E-voting reduced the cost of election and provided convenience to some extent as
compared to the traditional approach of pen and paper but it was considered to be
unreliable as anyone having access to the machine physically can obstruct the machine
and alter the votes. Also, in order to control the entire procedure from electronic voting
to electoral results and tracking the outcomes, a central system is required. Voters are
not completely secure as vote can be targeted easily. It also possesses a great threat to
the right to vote and transparency. This paper provides a solution for removing
inconveniences from conventional elections using blockchain that has emerged as an
exciting technology for various application due to its unique characteristics that
outperform other technologies. The goal of this research is to establish a system for e-
voting that is decentralized rather than centralized by using blockchain technology that
guarantees protection to electorate’s identity, data transfer privacy and verifiability by
an open and transparent voting process.
Blockchain-Based Identity Management for Secure and
Transparent Voting Systems
1. Introduction
An election is the procedure of espousing a candidate to hold a public office or an
official position in order to establish a government through the voters. Elections are
considered as one of the founding pillars in any democratic society where the citizens
make a decision by voting for the competent candidate to form a healthy democracy.
The modern-day elections emerged only after the 16th century across Europe and
North America. Modern approach of voting system or EVM replaced the traditional
method of voting, which was a monotonous process, demanding arduous and taxing
efforts, resulting an ample scope of error and miscalculations. With the techno-
advancement, the mechanical system of voting proved far more fluent, serviceable and
reduced the human effort, thereby increasing the reliability and accuracy. The
proposed system employs the technologies like e-voting, blockchain and smart
contract to provide more security and convenience.
E-voting: E-voting refers to the process of casting and compiling votes using an
electronic system. Votes are stored in tape cartridges, diskette, smart cards and sent to
a centralized location for compilation process. The various forms of e voting are DER
(direct electronic recording) touch screens, optical scanners. The two main types of e-
voting are: On-site e-voting where electronic voting machines are placed / present in
the polling boots with some government official who will supervise the voting process
and people have to be in queue for casting the vote. Remote e-voting; where people
need not be present at the polling station instead can cast their vote from any remote
location using computers, mobile phones, etc. through internet, SMS, or kiosks. The
security community found electronic voting machines inaccurate and untrustworthy
based on security issues. The software can be undermined when the device is
physically reached which affects the votes on the machine. People’s privacy and
voting protection must be secured but it should not take too long for votes to be
counted, as it upraises concerns.
Blockchain: Blockchain proved to be a substitute for the conventional approach by
making system unalterable and transparent. Blockchain is an organized data structured
that includes blocks where each block is connected to every other block through a
chain. The first block is called as genesis block. Each new block will be stacked to
form a stack called a blockchain. Each block consists of data, hash and hash of
previous block. If any change is being made to the data available in a particular block,
consequently the hash of the block also gets changed but the next block will have the
same unchanged hash of the previous block which invalidates this block and all other
succeeding blocks. This is to avoid tempering because making change in one block
you will need to calculate hash for every other following block however hackers now
a days can compute hundreds of thousands of hashes in a matter of seconds. In order
to avoid this problem, it makes use of proof-of-work concept that delays the pace of
forming a new block. Moreover, it makes use of a distributed peer to peer network
where no central entity is present. Whenever a new block gets created, it is sent to all
other nodes present on this network where each node makes sure that no tempering is
done by verifying the block after which the new block is added to every other node’s
blockchain. Every node on the network agrees on whether the block is valid or not by
creating a consensus which makes blockchain so secure, safe and reliable.
3. Identity Verification Challenges: Ensuring that each vote is cast by an eligible voter
remains a persistent challenge. Current systems often rely on weak or outdated identity
verification methods, increasing the risk of voter impersonation or duplicate voting.
1.3 Objective
The primary objective of this project is to design and implement a blockchain-based
voting system with decentralized identity management to ensure secure, transparent,
and efficient elections. The specific objectives are as follows:
6. Reduce Costs and Delays: Minimize election expenses by automating processes like
vote validation and counting through smart contracts, while also providing faster and
more accurate results.
1.4 Method
The methodology for this project involves the integration of blockchain technology
with decentralized identity management to create a secure and transparent voting
system. The approach is structured into the following key components:
2. Literature Review
The literature on blockchain-based voting systems highlights the fundamental
challenges facing traditional electronic voting mechanisms, including security
vulnerabilities, fraud risks, and issues with voter anonymity and system transparency.
Existing centralized systems are often prone to manipulation, inefficiency in vote
counting, and lack of accountability in the election process. Blockchain technology,
with its decentralized nature, offers a promising solution to these problems by ensuring
immutable data storage and transparency.
This project builds upon these foundational concepts, adapting them into a secure,
scalable, and transparent blockchain-based voting system that addresses the
shortcomings of traditional and existing e-voting systems. Through the use of
Ethereum smart contracts, MetaMask wallet integration, and Ganache for local testing,
this approach further advances the possibilities of blockchain in the realm of secure
and trustworthy electoral systems.
3. Proposed Methodology
The proposed system utilizes several tools namely ganache, truffle framework, npm
and MetaMask. Truffle imports the smart contracts on the blockchain while as ganache
operates the internal blockchain and it will be accessed by using MetaMask.
Ganache: It was previously known as Testrpc and comes in both forms command line
and UI. A virtual blockchain establishes ten standard Ethereum addresses with all and
private key preloading them with simulated hundred ether each. With ganache there is
no mining rather it automatically confirms every transaction.
MetaMask: MetaMask is an open source, user friendly tool having a graphical user
interface for doing transactions in Ethereum. Ethereal Dapps can run without having
a complete Ethereum node running your system browser. MetaMask is essentially a
bridge between browser and blockchain Ethereum.
Solidity: Solidity is a high-level language with JavaScript style syntax for contracts.
It is a method for generating EVM machine level code and converts it into simple
instructions.
Working:
Figure 3. Flow model of the E-voting system based on blockchain
The voter can log on to the voting website, then he has to log in with the Chrome
Extension of MetaMask to connect with the local blockchain. Once the user is
connected, the page is refreshed and the user can see the candidates and the current
votes. once the user clicks on Vote, the vote is given to the selected candidate provided
that the voter hasn’t voted before. If the user has already voted and attempts to vote
again, a failed transaction will occur and vote will not be accounted. A local
blockchain is deployed using Ganache and MetaMask is set up to connect with it.
Truffle framework allows to migrate the smart contracts created on solidity to the local
blockchain. When the user clicks to vote, every user is given a unique ID that is Voter
Id. Once the user votes, the Ether is transferred from the voter’s account to the
Candidate’s account, and all the transactions goes through the blocks, all the
transactions will be visible to everyone once we launch the project. This will give
voters complete transparency and they can cross-check their votes.
Implementation
1. Setting up: The first thing that we need to do is run local blockchain by starting up
Ganache.
Now we use truffle framework to transfer the smart contract to the blockchain by giving
command on the command line. We have also used NPM directory by cmd.
Figure5.Command Line for Truffle
2. User Interface: User interface is through which users can interact with the e-voting
system. The picture below is how user will see the interface. By clicking the connect
the ”connect Button”, user can connect to the MetaMask wallet. After MetaMask is
connected the user can register with their credentials through the verification of
MetaMask. Now, user can vote for the candidates which are below mentioned.
3. Checking the Transactions: The transaction list will be available publicly to provide
the user with convenience to tally their votes respectively. The users can check their
votes given by them by looking into the transaction list.
Figure 7. Transaction List
Hsiao JH, Tso R., Chen CM., Wu ME. (2018) Decentralized E-Voting Systems Based on the
Blockchain Technology. Advances in Computer Science and Ubiquitous Computing.
Ayed, A.B. (2017). A Conceptual Secure Blockchain Based Electronic Voting System. International
Journal of Network Security & Its Applications
Gjøsteen K, Lund AS (2016) An experiment on the security of the norwegian electronic voting
protocol. Annals of Telecommunications.