0 ratings0% found this document useful (0 votes) 75 views47 pagesGaju
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
DECENTRALIZED VOTING
SYSTEM
A PROJECT REPORT
Submitted by ~
SAHITYA PANDEY (21BCS4644)
GAJENDER (21BCS4627)
SHASWAT PANDEY (21BCS4646)
VAIBHAV CHAURASIYA (21BCS4709)
ADITYA KUMAR (21BCS4609)
in partial fulfillment for the award of the
degree
Bachelor of Engineering
IN
Computer Science and Engineering
CHANDIGARH
(a UNIVERSITY
Eri
GEMM Discover. Lear. Empower.
Chandigarh University
JUNE 2023CHANDIGARH
[Ty UNIVERSITY
es ———
THES Discover Learn. Empower.
BONAFIDE CERTIFICATE
Certified that this project report “(DECENTRALIZED VOTING SYSTEM” is the
bonafide work of
“SAHITYA PANDEY (21BCS4644)
GAJENDER (21BCS4627)
SHASWAT PANDEY (21BCS4646)
VAIBHAV CHAURASIYA (21BCS4709)
ADITYA KUMAR (21BCS4609)”
who carried out the project work under my/our supervision.
SIGNATURE SIGNATURE
Er. (Prof.) Amit Kumar Er. Jaideep Kaur
HEAD OF THE DEPARTMENT SUPERVISOR
BE-CSE BE-CSE
Submitted for the project viva-voce examination held on 20/05/2023.
INTERNAL EXAMINER EXTERNAL EXAMINERTABLE OF CONTENTS
List of Figures 3
List of Tables 4
Abstract, 5
Graphical Abstract...
CHAPTER 1. INTRODUCTION...
1.1, Identification of Client/ Need/ Relevant Contemporary issue. u
1.2. Identification of Problem......:acs:setsssetsseatiestntnensenseeeneeseeeeee LD
1.3. Identification of Tasks....
1.4, Timeline...
15. Organization of the Report...
CHAPTER 2. LITERATURE REVIEW/BACKGROUND STUDY.
2.1. Timeline of the reported problem...
2.2. Existing solutions 2
2.3. Bibliometric analysis...
2.4, Review Summary...
2.5, Problem Definition ...ssactaessseestntensesen
2.6 Goals/Objecti
s 12
CHAPTER 3. DESIGN FLOW/PROCESS
3.1, Evaluation & Selection of Specifications/Features 13
3.2. Design Constraints...
3.3. Analysis of Features and finalization subject to constraints...»
3.4, Design Flow .. 13
3.5. Design selection ... sone 13
3.6. Implementation plan/methodology .......nenennnnnnnnnnnnnnnnnnnnnnnnnaee 13CHAPTER 4. RESULTS ANALYSIS AND VALIDATION
4.1, Implementation of solution .......snssnnnnnnnnnnnvnrnnnnne 4
CHAPTER 5. CONCLUSION AND FUTURE WORK ....
5.1, Conclusion ...ssssnentsnatinensntininannnsnaninestinnsnennatinesnnsaneses
5.2. Future work 15
APPENDIX ..
1, Plagiarism Report .....oscsinnsnsnnstnnsnnsnnnsnnsnnnnnnsnnennienennisn
2. Design Checklist 7
USER MANUALList of Figures
Figurel.1
Figurel.2
Figure2.1
Figure2.2
Figure2.3
Figure3.1
Figure3.5
Figure3.6
Figure3.7
Figure3.8
Figure3.9
Figure3.10
Figure4.4
Figure4.5
Figure4.6ABSTRACT
In any democratic country, Voting is a fundamental right of any citizen that enables them to
choose the leaders of tomorrow, It gives individuals in a community the facility to voice their
opinion. It helps them to realize the importance of citizenship. Online voting systems are
software platforms used to securely conduct votes and elections. As a digital platform, they
eliminate the need to cast your votes using paper or having to gather in person. They also
protect the integri
of your vote by preventing voters from being able to vote multiple times.
Electronic voting or e-voting has fundamental benefits over paper-based systems such as
increased efficiency and reduced errors. The electronic voting system tends to maximize user
participation, by allowing them to vote from anywhere and from any device that has an internet
connection. The blockchain is an emerging, decentralized, and distributed technology with
strong cryptographic foundations that promise to improve different aspects of many industries.
Expanding e-voting into blockchain technology could be the solution to alleviate the present
concems in e-voting. Here we propose a blockchain-based voting system that will limit voting,
fraud and make the voting process simple, secure, and efficient.GRAPHICAL ABSTRACTBlock 4
Deployed Voting Contract
j
3 Ea| ¢ =
me
8 om \~
a a 2 +
= = we
5 m
E i} eof a2
s | wo | & a
2 5 oS
5 é' a
Fl 2/2) 8
a g
t[ a) 4 °
2 a ai
gi beV ei pte
&
5 5 iSHA
HTML
css
SQL
ABBREVIATIONS
Secure Hash Algorithm
Hyper Text Mark-Up Language
Cascading Style Sheets
Structured Query LanguageCHAPTER 1.
INTRODUCTION
1.1 Identification of client/need/relevant contemporary issue:
Seeking freedom has been humanity’s paramount objective since times immemorial --
ultimately leading to the rise of the ideal of democracy. Even as far back as 508 B.C., Ancient
Greece, where one of the most preliminary forms of democracy had been implemented.
However, the humongous populations around most regions of the world make it almost
unfeasible to implement democracy in the truest sense.
Existing system: The most basic pillar of democracy is the need for electing leaders by the
vote in a fair and integral manner. However, the current voting systems(mostly electronic)
across the world are full of several complications that lead to the formation of a huge cavity in
democracies worldwide. The most significant issue corresponds (o a lack of trust in the electoral
system among people. The existing system of election is running manually. The voter has to
visit booths to vote for a candidate as such there is a lot of wastage of Time. Due to this, many
people don’t go out to cast their vote which is also one of the most important and Worrying
factors. In any democracy, each and every vote is important. This Traditional system is not
efficient and cannot provide enough transparency to ensure trus
The need for voters to reach the designated location to cast their vote in inadequate access to
voting in the midst of most of the populous regions around the world. Thus, the manyissues in
the current electoral voting system include : voter fraud and manipulation, lack of transparency
and accountability in the organization responsible for conducting the elections, time-
consuming and tedious process of counting votes, manual tampering with the cast votes,not,
enough options for voting in remote locations.
Proposed methods to improve the current system: Of course, most of these solutions can be
solved using a more distributed voting system but that leads to the problem of how to make it
secure enough for people to set aside their doubts and actually use their devices to cast votes.
We live in a world where everything is available on the internet, However, there is still constant
breach in security on the intemet. Thus, the need arises for a more secure, non-breachable,
immutable, and decentralized electoral voting system which we will be trying to achieve by
developing this project.
101.2. Identification of Problem:
Decentralized e-voting is preferably executed online rather than traditional voting. This
introduces various, distinetive challenges concerning primarily transparency, privacy,
correctness, and integrity. It is crucial to understand that solving these fundamental challenges
is an open research question, In order to narrow down the subject and define a primary set of
questions correlated to the project, one main challenge will consequently be introduced. The
‘main challenge will additionally be systematically broken further down into subtasks, each
constrained and defined in order to facilitate an organized project and generate a proof of
concept which is stated as the following:
How does one implement a minimum valuable decentralized voting system, utilizing
Blockchain technology and being capable of handling voting, showing votes, and verifying
correctness?
This challenge consequently harvests several concerns, The project will nonetheless define
three requirements for the intended voting system. The requirements are constructed as sub-
tasks of the central task, namely the challenge of building a decentralized voting system. The
subtasks incorporate the following problems:
+ Privacy:
Itis essential to keep an individual's vote secret. That is, a voter’s vote should not be revealed
toanyone at any step. The system already leverages the eryptographic properties of blockehain
to achieve security. However, the non-traceability of a vote is nonetrivial, Transactions to the
blockchain produce metadata. Statistical analysis will reveal sensitive information, even if the
data itself is encrypted, making pattern recognition possible. It is therefore essential to assure
privacy for the system and assure that votes are untraceable. Thisnaturally generates a question
of formulation:
How does one assure privacy?
+ Integrity:
In computer science, integrity generally relates to the assurance of the accuracy and consistency
of data over its entire life cycle. The voting system should supposedly not allow unauthorized
modification of the electoral results. In addition, the system should exclusively assure
authorized voters to vote only once. Voters are therefore required to use unique identifiers to
assert the right to vote.
This precondition naturally produces additional concems. However, this thesis will consider a
fundamental challenge as a result of this requirement, namely:
uHow does one assure integrity?
+ Correctnes
Votes should supposedly not be modified, forged, or deleted. The system should ensure and
prove to a voter that all votes were counted correctly. This requirement naturally brings
forwards the question: How does one assure correctness?
1.3 Identification of tasks:
1.3.1 Proposed solution description:
Client Application [Blockchain Network
me] Meemak "5! [Sart contac
Ht |,
css Wit |
React Js Soiidity
a Ganache
amt] Node Sever The
Fig. 1.1
The intent of making this project is to eliminate the need of trust and ensure that the voters are
able to cast their votes in a correct manner ensuring the integrity as well as privacy of the voter.
However, it will be first applied at a smaller scale for testing and once the test is successfully
conducted the system can be implemented at a larger scale.
The product is made with the perspective that it will replace the prevailing voting system,
although it can be first applied to small areas for testing and after being successful it mightbe
implemented at a larger scale. We'll have a traditional front-end client that is written in HTML,
CSS, and JavaScript. Instead of talking to a back-end server, this client will connect toa local
Ethereum blockchain that we'll install. We'll code all the business logic about our dAppin an
Election smart contract with the Solidity programming language. We'll deploy this smart
12contract to our local Etherum blockchain (database), and allow accounts to start voting.
However, it is important to first understand these basies terms.
The list of various tasks to be implemented is given in this section. The entire system is divided
into two sub-systems a registration system( front-end) & a voting system(back-end)
1. Registration System (Front-end): A voting registration System is developed using
Html/CSS front-end and SQL back-end which contains the user's personal details already
stored for e.g.: One can consider this as an Aadhar database, A biometric device could
potentially be used for validation purposes. If the user is a valid user, then he/her is handed
a hash code /address/public key-private key pair which is used as a credential for login into
the voting machine.
2. Voting System (Back-end): The voting system can be considered as a replacement for
EVMs. It is a decentralized application with a front-end in Himl based on the bootstrap
frameworks running on the Ethereum Blockchain in the back end, The smart contract is
written in solidity language. The candidate’s name with the symbol of a candidate is
mentioned inhsmart contract. A smart contract is the actual logic piece of the entire voting
system. Each andevery change made in a blockchain is called a Transaction. Transaction
is the way, by which the external world interacts with the Ethereum network. The
transaction is used when we wish to modify or update the state stored in the Ethereum
network, Each Transaction requires a transaction fee or service charge, Within an
Ethereum network circulates a native currency: ether. Ether is mainly used as the
transaction fee or service charge calledgas fee. In this project, we are using Ganache. This
speeds up the proc
s of setting up a private network and transactions are mined almost
immediately. MetaMask is a bridge thatallows you to visit the distributed web of tomorrow
in your browser today. It allows you to run Ethereum dApps right in your browser without
running a full Ethereum node
3. Integrating the front-end with the back-end: Once the task of developing both the front-
end and the back-end is complete, It is will be integrated using the APIs and libraries in
JavaScript and solidity. Now, the test would be ready to be tested.
1B1.4 Timelin
PROPOSED TIMELINE FOR DECENTRALIZED
GANTT CHART VOTING SYSTEM PROJECT
er
ruvene
eseanct
wenvesea
covmPacroescn
evevewtamon
ests | pg
i
Fig.1.2
‘Week 1-2: Planning, Research and Requirements Gathering
© Define the problem statement and research on existing decentralized voting systems.
© Identify the requirements of the new decentralized voting system.
© Define the scope of the project and create a project plan.
‘Week 3-4: Research and Literature Review
© Examine the existing e-voting systems and prepare documentation.
© Define the technical specifications and possible models.
© Identify the security and privacy requirements for the system,
.
Identify the technical challenges and risks involved in the project.
Week 5-6: Designing (Web and Smart Contract)
© Develop the system architecture that meets the requirements gathered in the previous
phase.
© Design the website and the smart contract based on the requirements gathered in
requirement analysis.
14Week 7-8: Implementation and integration
® Integrate all the components of the system and test for interoperability,
© Implement the system design in code.
© Develop test cases and perform unit testing to ensure that each component of the system
is functioning correctly.
‘Week 9-10: Deployment and initial testing
© Deploy the system in a controlled environment.
© Perform stress testing to ensure the system can handle high volumes of traffic.
© Create documentation for the system, including technical documentation, user manuals,
and a complete project report.
© Prepare a presentation to showcase the system and its features.
Present the project report and demonstrate the system.
‘Also, deploy the model for initial testing.
Week 11-12: Testing and follow-up.
® Test the system for security vulnerabilities and privacy issues.
© Test the decentralized system for possible modifications in the future,
1.5 Organization of the Report
The Project report is broadly classified into five chapters:
Chapter 1: Introduction
In this chapter, a brief introduction is given to the project context. The problem is identified
using relevant methods to create a proper problem statement. The need is justified by
highlighting the relevant issues i.e., trust, and transparency Once the problems have been
identifiedin the current voting systems across the world. Blockchain technology is introduced
as a possible solution to the issue of trust in the system. Thus, the concept of a decentralized
voting system is proposed as a possible solution to the problem. Based on the requirement
analysis, atimeline is organized for the flow of the project.
15Chapter 2: Literature Review/Background Study
In this chapter, a comprehensive analysis is conducted of the existing voting systems.
Moreover, the historical advent of voting systems is also analyzed, It provides a better context
and basis for the existence of the problem. This chapter also briefly compares the earlier
proposed solutions and their effectiveness. This chapter also analyzes the various merits and
demerits of the proposed solution, Once the analysis is complete, the problem is re-defined.
The relevant goals and objectives are also decided upon while reiterating the timeline provided
in the first chapter.
Chapter 3: Design flow/process
The list of goals and objectives had already been confirmed in this previous chapter. In this
chapter, the possible design processes are identified to systematically reach the desired
outcomes while keeping the different constraints in mind. Once the design process to be
followed is confirmed, a detailed block diagram/algorithm/flowchart is constructed to
implement the desired features.
Chapter 4: Result Analysis and Validation:
In this chapter, the implementation is finally done. The front-end and back-end which were
beingprepared in a parallel manner, are integrated. Also, the testing is done using modem tools,
in : analysis, Testing characterization, interpretation, data validation, ete.
Chapter 5: Conclusion and future work
This concludes the project report by mentioning the expected outcomes and the actual
outcomes. Also, analyzing how the actual outcomes deviated from the desired outcomes and
what could possibly be done to improve the system. It also provides context for the future scope
of the project by providing the required modifications in the project and possible extensions.
16CHAPTER 2.
LITERATURE REVIEW/BACKGROUND STUDY
2.1 Timeline of the reported problem
Traditional paper ballot voting systems were once the norm around the world. However,
electronic voting systems have begun to be adopted in many countries in recent years. Estonia
was the first country in the world to use an electronic voting system for its national elections,
followed by Switzerland and Norway.
To compete with traditional paper ballot systems, electronic voting systems must meet the same
security and anonymity standards. This means that they must be secure enough to prevent
outside influences from changing votes or tampering with ballots, while also protecting the
privacy of voters.
2.1.1 Estonian I-Voting System
Estonia was the first country to allow citizens to vote online using an electronic national
identification card. The card is able to create digital signatures using SHA1/SHA2. This allows
voters to authenticate themselves and encrypt their votes. Voters can vote multiple times, but
only the last vote will be counted. This is done to prevent vote buying.
2.1.2 Norwegian I-Voting System
In 2011, Norway used an electronic voting system for the country council elections. The system
was developed by Scytl, and was similar to the Estonian electronic voting system. However, in
2014, the country discontinued the project due to security concems. One of the main problems
with the Norwegian I-voting system was the fear of votes being leaked to the public.
2.1.3 Zurich Internet-based Voting System
Zurich is the largest city in Switzerland. In 2002, Zurich used a voting system called the Unisys
Internet voting system. The system was first used in a student election, and after its success, it
was subsequently used in the public election in Bulach in 2005. However, the system was
discontinued in 2007 due to security concerns.
72.2 Existing solutions
Voting is a fundamental pillar of democracy. The two main existing voting systems are
traditional paper ballots and electronic voting systems. However, both of these systems have
security vulnerabilities. The issue of privacy, anonymity, and security is a challenge that needs
to be addressed.
2.2.1 Paper ballot Based Voting Systems
The traditional system for casting votes is the paper ballot system. In this system, voters mark
their choices on a piece of paper, which is then placed in a sealed ballot box. The ballots are then
counted to determine the results of the election. This system relies on the trust of voters in the
election officials who are responsible for counting the ballots.
2.2.2 Electronic Voting Systems
The first electronic voting system was introduced in the early 1980s by David Chaum. The
system used public key cryptography to cast votes and keep voters anonymous. This system was
based on the blind signature theorem.
Since then, there has been a lot of research on electronic voting systems. Two of the most
common types of electronic voting systems are direct recording electronic (DRE) systems and
internet voting systems.
DRE
stems are used in many countries around the world. These systems use a computer to
record votes. Voters typically cast their votes by touching a sereen or pressing a button.
Intemet voting systems are less common than DRE systems. These systems allow voters to cast
their votes over the Internet, However, internet voting systems are more vulnerable to security
attacks than DRE systems.
Here are some of the major countries that use electronic voting systems:
India
2)Estonia
3)Switzerland
4)Norway
5)Brazil
6)United States of America and many more countries,
182.3 Bibliometric Analysis
It is important to have a deep understanding of the existing solutions or research about the
problem that is being solved before delving deeply into developing a new solution. This is
because it is important to understand the key features, effectiveness, and drawbacks of the
existing solutions in order to develop a new solution that is better than the existing ones.
‘The analysis shows that the research on decentralized voting systems is a rapidly growing field.
There is a strong interest in developing secure, transparent, accessible, and usable decentralized
voting systems. The research in this area is still in its early stages, but there has been significant
progress in recent years.
‘The top journals for publishing research on decentralized voting systems include the following:
E Security & Privacy
+ ACM Transactions on Computer Systems
Journal of Cryptology
Journal of the ACM
Information Systems
‘The top authors for publishing research on decentralized voting systems include the following:
David Jefferson
David Molnar
Ronald L. Rivest
Barbara Simons
Michael J. Wiener
The top research institutions for publishing research on decentralized voting systems include the
following:[1]
+ Massachusetts Institute of Technology
19Stanford University
Camegie Mellon University
University of California, Berkeley
University of Toronto
The top research topics in decentralized voting systems include the following:
Security
‘Transparency
Accessibility
Usability
Scalability
The bibliometric analysis also shows that the research on decentralized voting systems is
becoming increasingly intemationalized. In the early years, most of the research was conducted
by researchers in the United States. However, in recent years, there has been a growing number
of researchers from other countries, including Europe, Asia, and South America, who are working
on decentralized voting systems.
The bibliometric analysis provides a snapshot of the research on decentralized voting systems. It
shows that the research in this area is
rapidly growing and becoming increasingly
internationalized. The research on decentralized voting systems is still in its early stages, but there
has been significant progress in recent years. There is a strong interest in developing secure,
transparent, accessible, and usable decentralized voting systems,
2.3.1 Key Features:
‘® Blockchain helps in the decentralization of the system so that the system is not controlled
by any single centralized authority.
© It also provides a distributed system where votes can be easily verified.
© It is much more transparent compared to the existing voting systems.
© Immutability of the blockchain provides an additional layer of security
20© Itprovides integrity to the system,
2.3.2 Effectiveness:
Blockchain technology has the potential to solve many of the problems with traditional voting
systems. Blockchain is a secure, decentralized, and transparent way to store data. This makes it
an ideal solution for voting, as it can help to ensure that votes are cast and counted accurately
and that the results are tamper-proof.
Some of the benefits of using blockchain for voting include:
* Security: Blockchain is a very secure technology. It is very difficult to hack or tamper with
blockchain data.
* Decentralization: Blockchain is a decentralized technology. This means that it is not
controlled by any single entity. This makes it more resistant to attack and manipulation.
+ Transparency: Blockchain is a transparent technology. All transactions on the blockchain
are public, This makes it easy to verify the results of an election.
In addition to these benefits, blockchain can also help to improve the efficiency and accessibility
of voting. For example, blockchain-based voting systems can make it easier for people to register
to vote and cast their votes. They can also help to reduce the cost of elections.
Overall, blockchain technology has the potential to revolutionize the way we vote. It can help to
make voting more secure, transparent, efficient, and accessible.
2.3.3 Drawbacks:
One of the main criticisms of both Estonian and Norwegian electronic voting systems is the
secrecy of critical parts of the code. The script used to post votes on the Estonian T-Voting system
is closed-source, which raises questions about transparency. The centralization of the I-Voting
system makes it vulnerable to DDoS attacks, which could make elections inaccessible to voters.
Intelligence agencies have access to a wide range of network traffic and enough computing
power to analyze voting data for potential alterations. Even with enhanced security, state-level
attacks are possible in all of the previously mentioned systems.
‘The system we are going to propose in this paper will address all of these security concerns by
using open-source code to develop our e-voting system, relying on blockchain technology to
secure votes, and decentralizing the system,
2.4 Review Summary
2Most of the existing voting systems can be modified to create a more distributed system, but this,
raises the question of how to make it secure enough for people to trust and use. We live in a
world where everything is available on the internet, but there are still constant security breaches.
This is why there is a need for a more secure, non-breachable, immutable, and decentralized
electoral voting system. This is where blockchain comes
Some of the important conclusions used in this project are as follows:
* Author [5] proposed a web-based voting system that captures votes and tallies results over
the web. This system would save time, avoid human errors, and prevent vote tampering. It
would also be fast, low-cost, and easy to maintain.
* Author [6] mentioned an online voting system that allows voters to cast their votes from
anywhere, This would increase voter participation, as voters would not have to go to a
polling station. The proposed system would be supported on Windows, Android, and iOS.
‘Voters would be verified using a one-time password (OTP).
‘© Author (7] proposed an electoral system that would be online and automated. This would
make the voting process casier, safer, and faster. The project has two modules. The first
module registers voters, and the second module allows them to cast their votes.
2.5 Problem Definition
Decentralized e-voting is preferably executed online rather than traditional voting. This
introduces various, distinctive challenges concerning primarily transparency, privacy,
correctness, and integrity. It is erucial to understand that solving these fundamental challenges
is an open research question. In order to narrow down the subject and define a primary set of
questions correlated to the project, one main challenge will consequently be introduced. The
main challenge will additionally be systematically broken further down into subtasks, each
constrained and defined in order to facilitate an organized project and generate a proof of
concept which is
ted as the following
How does one implement a minimum valuable decentralized voting system, utilizing
Blockchain technology and being capable of handling voting, showing votes, and verifying
correctness?
The subtasks incorporate the following problems:
+ Privacy:
22It is essential to keep an individual’s vote secret. That is, a voter’s vote should not be revealed
toanyone at any step. The system already leverages the cryptographic properties of blockchain
to achieve security. However, the non-traceability of a vote is non-trivial. It is therefore
essentialto assure privacy for the system and assure that votes are untraceable. This naturally
generatesa question of formulation: How does one assure privacy?
+ Integri
In computer science, integrity generally relates to the assurance of the accuracy and consistency
of data over its entire life cycle. The voting system should supposedly not allow unauthorized
modification of the electoral results, This precondition naturally produces additional concems
However, the project will consider a fundamental challenge as a result of thisrequirement,
namely:
How does one assure integrity?
+ Correctness:
Votes should supposedly not be modified, forged, or deleted. The system should ensure and
prove to a voter that all votes were counted correctly. This requirement naturally brings
forwards the question: How does one assure correctness?
2.6 Goals/Objectives
In the previous chapters, the problem has been very clearly defined. Now, it becomes very
important to set goals for this project. With clear goals, it will become easy to start with the
design process. The project is mainly required to fulfill these few goals for a voting system:
‘© Decentralized: To develop a voting system that is not controlled by any single centralized
authority. Thus, forming the basis for voters to trust in the system.
© Distributed: To develop a voting system where votes can be easily verified. Thus, forming
another basis for voters to trust in the system,
© Transparent: To develop a voting system that is more transparent towards both the voters
and candidates.
© Immutable: To develop a voting system that is immutable and thus cannot be tampered
with easily
© Privacy: To develop a voting system that can ensure the privacy of the voters as they give
23votes.
© Integrity: To develop a voting system that gives a certain confidence to the voter that the
voting process is going exactly as it looks.
© Validation: To develop a voting system that can properly validate the votes cast by each
voter.
Apart from these abstract goals, the project has some concrete technical objectives:
1. Registration System (Front-end): A voting registration System is developed using
Himl/CSS front-end and SQL back-end which contains the user's personal details already
stored for eg: One can consider this as an Aadhar database.
2. Voting System (Back-end): The voting system can be considered as a replacement for
EVMs. It is a decentralized application with a front end in Html based on the bootstrap
frameworks running on the Ethereum Blockchain in the back end. The smart contract is
written in solidity language.
3. Integrating the front-end with the back-end: Once the task of developing both the front-
end and the back-end is complete, It is will be integrated using the APIs and libraries in
JavaScript and solidity. Now, the test would be ready to be tested.
4. Testing the system: Once the voting system is completed it will be tested by conducting
a virtual demo election.
24CHAPTER 3.
DESIGN FLOW/PROCESS
3.1 Evaluation & Selection of Specifications/Features
In the previous chapters, the problem has been clearly defined. Now, it is important to set goals
for this project. After a critical evaluation of the requirements and needs, it can be said that the
solution must have the following features:
Decentralized: The voting system should not be controlled by any single centralized
authority. This will help to build trust with voters.
+ Distributed: The voting system should be designed so that votes can be easily verified.
This will also help to build trust with voters.
+ Transparent: The voting system should be transparent to both voters and candidates.
‘This will help to ensure that the system is fair and that there is no fraud.
+ Immutable: The voting system should be immutable, meaning that it cannot be tampered
with easily. This will help to ensure that the results of the election are accurate.
+ Privacy: The voting system should ensure the privacy of voters. This means that no one
should be able to see who a voter voted for,
+ Integrity: The voting system should give voters confidence that the voting proces
s
going as it should. This means that the system should be secure and that there should be
no errors.
+ Validatios
The voting system should be able to properly validate the votes cast by each
voter, This means that the system should be able to detect and reject invalid votes.
‘The above-mentioned features are the specific features that must be fulfilled by the system once
finished. In order to incorporate these features into our system, the project is basically divided
into three major phases with corresponding designing phases:
1, Registration System (Front-end): A voting registration system is developed using
HTML/CSS front-end and SQL back.
already stored. For example, one can consider this as an Aadhar database.
nd, which contains the user's personal details
252. Voting System (Back-end): It is a decentralized application with a front-end in HTML.
based on the Bootstrap frameworks running on the Ethereum Blockchain in the back-end.
‘The smart contract is written in Solidity language.
3. Integrating the front-end with the back-end: Once the task of developing both the
front-end and the back-end is complete, it will be integrated using the APIs and libraries
in JavaScript and Solidity. Now, the test would be ready to be tested.
3.2 Design Constraints
3.2.1 Technical Constraints
+ Ether: This system will use the Ethereum blockehain to run the smart contract needed for
the voting process. As such, the user conducting the election must pay for the required
gas amount to run the election, It would be best to incorporate an Ethereum wallet like
MetaMask into the admin account for the smooth running of transactions and the voting
process.
+ Hardware/Software: There are no hardware/software constraints. Anyone who can access
the website may register as a voter or a candidate if they fulfil the requirements. As such,
the design must be prepared while keeping this constraint in mind.
+ Validation: Any user who wishes to register as a candidate or a voter must first validate
their identity using the Aadhar card.
3.2.2 Non-Technical Constraints
+ Legal: The system must comply with all applicable laws and regulations, such as those
related to data privacy and election security.
+ Political: The system must be acceptable to all stakeholders, including voters, candidates,
and election officials.
‘+ Social: The system must be designed in a way that is inclusive and accessible to all voters,
regardless of their age, disability, or location.
These are just some of the design constraints that must be considered when developing a
decentralized voting system. It is important to carefully consider all of these constraints in order
to design a system that is secure, reliable, and accessible to all
263.3 Analysis of Features and finalization subject to Constraints
We have already discussed in detail the various features that the system is expected to fulfil,
Afterward, we also analyzed the constraints that limit the incorporation of some of the
mentioned features into the system. To prepare the design for the development of the various
modules of the system, after taking into account both the features required as well as the
limiting constraints, the following features must be incorporated into the design which are
‘majorly divided into three categories:
‘A. The features related to the admin side
1, Admin Dashboard
2, Add Candidate
3. Create an Election
4, Election Details,
5. Candidate Details
B. The features related to the user side.
1, User Dashboard
2. Voter Register
3. Voting Area
4
Results
C. The Features of the back-end system
1. Access control
2. Transaction management using a wallet
3. Ledger synchronization
4,
Data synchronization
273.3 Design Flow
3.3.1: Proposed Design Plan:
In this proposed plan of design, the entire system to be designed is broadly categorized into
‘twomajor phases as follows:
1. Phase-1 (Front-end for the application)
2. Phase-2 (Back-end using Solidity to implement Blockchain)
Each of these modules will be considered as phase-1 and phase-2 respectively.
Phase 1: In this phase, we will cover the front-end module, in which we will build the
interactive user interface for the admin as well as the user, (In parallel the research work related
to the implementation of Blockchain in decentralized applications will be done). The Phase 1
will be divided into two major modules:
© Admin (This will deal with the everything related to the admin
side):The admin module is divided into 5 components
1, Admin Dashboard
2. Add Candidate
3. Create an Blection
4, Election Details.
5. Candidate Details
© User (This will deal with everything related to the user
side)The user module is divided into 4 components
1. User Dashboard
2. Voter Register
3. Voting Area
4, Results:
28Phase 2: In this phase, we will design the architecture of the back-end on which our voting
system website is going to run. This phase is divided into four major modules:
1, Access control
2. Transaction management using a wallet
3. Ledger synchronization
4. Data synchronization
3.4 Design selection
3.5.1 Data Flow Diagrams:
1) Level 0 DFD:
user | -
4} egstation +
we
Beiontum // Block ain
Results tases \—____
«| evorns
system
1 veifeaton
Election sep
tess |
Aaalycs
nin
Level 0 DFD
2) Level 1 DED:
‘aton
Adit!
Centr
Crete ction
Dep smert coment
"Kee ecto
‘lretacton
oni Observe result
Use
Verity oes
Bespay ote
tration 1D
Fig-3.2: Level 1 DFD
293) Level 2 DFD:
user |
+] account
Operation | \
"toate,
z
vertetion coee eee
au
ta ten. Election Election
=
Fig-3. evel 2 DFD
3.5.2 UML Diagrams:
1) USE CASE DIAGRAM:
Fig. 3.1 Use Case Diagram
302) SEQUENCE DIAGRAM:
Sequence Diagram Regivaton
k User
Voter
L Voter register 1
| Voter activate
| their account
|
Fig. 3.4 Sequence Diagram Registration
Fig, 3.6 Sequence Diagram Vote
313.5 Implementation Plan/Methodology
In this plan of design, the entire system to be d
gned is broadly categorized into two major
phases as follows:
1. Phase-1 (Front-end for the application)
2. Phase-2 (Back-end using Solidity to implement Blockchain)
Each of these modules will be considered as phase-I and phase-2 respectively.
3.6 Phase-1
In this phase, we will build the interactive user interface for the admin as well as the user. Phase
1 is majorly divided into two modules: The admin module and the User module.
@ Admin
The admin module will provide all the functions related to the admin level of abstraction; this
module is divided into 5 sub-modules:
1. Dashboard: It will contain various charts to display information such as the number of
parties,number of voters, ete.
2. Add Candidate: In this feature of admin, he can add candidates who are standing in the
election, After a candidate is added it will be displayed on the user side.
3. Create Election: This feature of the admin will allow him to create an election. A user can
cast hisvote only after the election is created by the admin. A user can cast a vote between the
start date and the end date.
4. Election Det:
n this section, the admin can update election details such as start date,
end date, et
5. Candidate Details:
In candidate details all the candidates added by admin will be displayed.
Admin ci
update the candidate details if in case a wrong entry is done.
ADMIN
|
| T
AE] [etm] [atte
Fig. 3.8 Admin Flow Diagram
33© User module
The user module will provide all the functions related at the user level of abstraction, this
module is divided into 5 sub-modules:
1, Dashboard: The user dashboard contains information about parties and their candidates. A
user can see all the information about the candidate.
2. Voter Register
In this section, the first user will have to register himself only then he
will beable to cast his vote.
3, Voting Area: After the user is registered, then only he will be directed (o this page and
then hecan cast his vote.
4, Results: In this component, the user will be able to sce the results of the election,
USER,
eer
verve REGISTER
__,}
LOGIN
VIEW REGISTRATION VIEW RESULT
CANDIDATE FORELECTION
INFORMATION
CAST VOT
Fig. 3.9 User Flow Diagram
‘The user and admin will work in parallel at different levels of abstraction to provide the user with
the preferred view. However, without the proper back-end to support the decentralization of the
system, it will not be able to support all the features that the system is required to fulfill.
Therefore, in the next phase of design, the smart contract's back-end architecture will be designed
ina way that the system becomes completely optimized with the front-end website. It is important
34to note that although the user and admin work at different levels of abstraction, the data
accessibility is the same at both levels of abstraction,
Here is a more detailed explanation of each level of abstraction:
+ User level: The user level is the interface that the user sees and interacts with. It is
responsible for displaying the data in a way that is easy for the user to understand and use.
+ Admin level: The admin level is the interface that the admin sees and interacts with, It is
responsible for managing the system and ensuring that itis running smoothly.
+ Back-end: The back-end is the part of the system that is not visible to the user or admin.
It is responsible for storing and processing the data, as well as communicating with the
blockchain,
The back-end is the most important part of the system because it is responsible for ensuring that,
the system is decentralized and secure, The back-end is designed to be completely optimized with
the front-end website, so that the user and admin can work in parallel at different levels of
abstraction,
‘The data accessibility is the same at both levels of abstraction because it is important that the user
and admin have access to the same data. This ensures that the user can see the latest data and that
the admin can manage the system effectively.
353.4.2 Phase 2: In this phase, we will design the architecture of the back-end on which our voting
system website is going to run. This will be done by implementing the Blockchain using the
Ethereum framework and converting the system into a decentralized application, This phase is
divided into four major modules:
1. Access control
2, Transaction management using a wallet
3. Ledger synchronization
4. Data synchronization
User Interaction and
front-end security
pO
—+—____
‘Access control
Management
E-voting Transaction
Management
Ledger synchronization
Fig. 3.10 Phase-2(Back-end) Flow Diagram
Final Phase: There is not much to be done in regards to designing in the final phase as it
simply involves the seamless integration of the modules designed in the two phases described
above. As long as the two designed modules are implemented without errors, the integration
36can be done in the final phase, Post the integration of the implemented designs of the two
phases, the system can further proceed to the testing and evaluation phase.
User Interaction and voter
front-end security Data verification
Ta Toate
peices E-Voting transaction
Management be
| =
voting Transaction ——
aieetnate ransaction mining
Public ledger
Ledger synehronization Ledger management
—— vote ata
synchronization
Data Source
Fig. 3.11 Complete Phase-2 Flow Diagram (Methodology)
37CHAPTER 4.
Ri LT ANALYSIS AND VALIDATION
4.1. Implementation of solution:
1, Adding contestants: In this step, we first need to add the contestants that are
going to stand in the election.
Fig. 4.1 Adding contestants
2. Contestants: As we see below, the contestants have been added
Fig. 4.2 Contestants list
383. Voter registration: Now, that there are some contestants in th election, now we
can register for the election.
Fig. 4.3 Voter Registration
4. Changing Phase: Once the voter registration phase is over, the phase has to be
changed to voting phase.
Fig. 4.4 Changing Phase
395. Voting Portal: Now that the state has changed from registration to contestant
phase, the voter can vote at the voting portal
Contestants
ra
Fig. 4.5 Voting Portal
6. Results: Once the voting phase is over, the result phase can be activated only
by admin.
Results
Fig. 4.6 Results
40CHAPTER 5.
CONCLUSION AND FUTURE WORK
5.1. Conclusion
Decentralized e-voting using the Ethereum blockchain is not yet possible due to the scalability
and environmental impact issues. The current voting system in Sweden works well, but DeVote
offers more transparency and immutability. DeVote is not entirely decentralized because a voting
station is still needed. DeVote is a great tool for eliminating corruption, but there are still some
challenges to assess.
Here are some of the challenges that need to be addressed before DeVote can be widely adopted:
+ Scalability: The Ethereum blockchain is not yet scalable enough to handle the number of
votes that would be cast in a large election.
+ Environmental impact: The Ethereum blockchain uses a lot of energy to power its
transactions.
+ Trust: Voters may not trust a decentralized voting system, especially if they are not
familiar with blockchain technology.
‘+ Security: Decentralized voting systems are more vulnerable to hacking attacks than
centralized systems.
5.2. Future work
In the future, it will be interesting to see how Ethereum's transition to Proof of Stake (PoS) could
benefit a system such as DeVote. PoS is a more energy-efficient consensus mechanism than Proof
of Work (PoW), which is the current consensus mechanism used by Ethereum. This could make
DeVote more environmentally friendly.
It would also be interesting to see if other blockchain implementations apart from Ethereum could
handle the requirements for DeVote. Some blockchains, such as Algorand and Solana, are
41designed to be more scalable and efficient than Ethereum. This could make them more suitable
for DeVote.
A suggested next step could be to implement DeVote on a private blockchain, A. private
blockchain is a blockchain that is not open to the public. This would allow DeVote to be tested
without the risk of interference from malicious actors.
‘The prototype also remains to be tested on the live Ethereum blockchain. There are also a number
of dedicated test networks in Ethereum named testnets, which are supported by various clients.
For future work, the prototype could be deployed on a testnet in order to observe how it functions
on a live blockchain. An interesting test might be to carry out a large number of votes.
Nonetheless, it is crucial to understand that there are still challenges left to possibly be resolved.
For example, DeVote would need to be designed in a way that protects voter privacy.
Additionally, DeVote would need to be secure against hacking attacks.
Despite these challenges, DeVote is a promising technology that has the potential to improve the
voting process. With further development, DeVote could become a viable altemative to
traditional voting systems.
a2References
github.com/tresoldi/tzara subject to licence (MIT).
Kirillov, Denis, Vladimir Korkhov, Vadim Petrunin, Mikhail Makarov, Ildar M.
Khamitov, and Victor Dostov. “Implementation of an E-Voting Scheme Using
Hyperledger Fabric Permissioned Blockchain.” In Intemational Conference on
Computational Science and Its Applications, pp. 509-521. Springer, Cham, 2019.
Moura, Teogenes, and Alexandre Gomes. "Blockchain voting and its effects on election
transparency and voter confidence.” In Proceedings of the 18th Annual International
Conference on Digital Government Research, pp. 574-575. ACM, 2017.
}. “Blockchain Tutorial.” Weka, Solidity, Org.Json, AWS, Java Cryptography. Accessed
September 11, 2019. https://www.tutorialspoint,comvblockchain/index.html
Barnes, Andrew, Christopher Brake, and Thomas Perry. "Digital Voting with the
Use of Blockchain Technology.” Plymouth University. Accessed Dezembro 15 (2016):
2017.
Bhushan M. Pawar, Sachin H. Patode, Yamini R. Potbhare, Nilesh A. Mohota, “ An
Efficient and Secure Students Online VotingApplication,” Issue 8-10 Jan. 2020, I
. Z.A. Usmani, Kaif Patanwala, Mukesh Panigrahi, Ajay Nair, “ Multipurpose platform
independent online voting system,” Issue 17-18 March 2017, IE]
. Mrunal Annadate, “Online Voting System Using Biometric Verification”, Issue April
2017, ResearchGate
4344454647