You are on page 1of 47
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 2023 CHANDIGARH [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 EXAMINER TABLE 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 13 CHAPTER 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 MANUAL List 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.6 ABSTRACT 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 ABSTRACT Block 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 i SHA HTML css SQL ABBREVIATIONS Secure Hash Algorithm Hyper Text Mark-Up Language Cascading Style Sheets Structured Query Language CHAPTER 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. 10 1.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: u How 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 12 contract 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. 1B 1.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. 14 Week 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. 15 Chapter 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. 16 CHAPTER 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. 7 2.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, 18 2.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 19 Stanford 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 2 Most 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: 22 It 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 23 votes. © 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. 24 CHAPTER 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 25 2. 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 26 3.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 27 3.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: 28 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 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 29 3) 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 30 2) 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 31 3.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 34 to 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. 35 3.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 36 can 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) 37 CHAPTER 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 38 3. 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 39 5. 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 40 CHAPTER 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 41 designed 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. a2 References 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 43 44 45 46 47

You might also like