ELECTRONIC VOTING USING DECENTRALIZED SYSTEM BASED ON ETHEREUM BLOCKCHAIN

Electronic Voting Using Decentralised System Based On Ethereums Blockchain is a system made in the form of application used for Electronic Voting. This is done to solve the current problem on conventional electronic voting system where the integrity of the data can not be as certain and the result of the vote can be tampered malicious actors. To solve this problem, an electronic voting system will be built that store the data of election results on blockchain to ensure the integrity of the data. The creation of the system involves using the Solidity language, a Turing Complete programming language used on Ethereum. Source code that will be run will rst need to be compiled into Bytecode, which will then in turn run on Ethereum Virtual Machine. The finished program will then be decentralised using Blockchain.
KEYWORDS – Blockchain, Decentralised System, Electronic Voting, Ethereum, Smart Government

Jurnal Ilmiah KOMPUTASI, Volume 19 No : 1, Maret 2020, p-ISSN 1412-9434/e-ISSN 2549-7227 voting machine. By using this machine, voters can cast their vote and the result of it will either be stored on each machine, or transmitted to a central database where it will be counted. While this could simplify tallying the voting result, the machine still need to be distributed to voting stations, thus not entirely addressing the issue currently present on manual voting or paper-based voting. Furthermore, the machine itself could be tampered by malicious actor, as proven by Blaze et al [1].
The second method of E-voting is by using internet. This method is widely used in Estonia, though it haven't found much traction on other country.
The voters can cast their vote by scanning their national ID card and then use their computer to give their vote. The vote will then be transmitted through internet to a centralized server that store and tally the vote result. With no paper or machine to be distributed and the system's ability to tally the vote count, it has addressed the issue present for manual or paper-based voting. However, reports from Organization for Security and Co-operation in Europe/Oce for Democratic Institutions and Human Rights (OSCE/ODIHR) has voiced some concern on the viability of this method.
One of them was the concern that whether the vote cast by voter is and the vote tallied on the central server is actually hasn't been tampered. Methods such as Man-in-the-middle attack could alter the vote sent through internet, leaving the voters none the wiser. Another concern is that the central server can be attacked by malicious actor, and if successful can change the result of the vote itself [2]. Also, both DRE based voting as well as I-Voting doesn't publicly give their source code, raising concern on transparency as well.
If left unresolved, this will eventually lead to the public's loss of trust in voting and election process, as well as the legitimacy of the democratic system itself in the eyes of the people.
Thus we have turned to blockchain to address this issue.
The benets of using blockchain are immutability, transparency, security and reliability.
Immutability, because the data is stored in multiple nodes and even if one of the node has it's data tampered, the data on other nodes will not be aected.
In order to actually tamper with data stored on blockchain, any malicious actor will need to not only attack a single node in the blockchain network, but

Blockchain
Blockchain is essentially a distributed ledger lled with records of transactions. This means that this records of transactions is not owned by just one party that need to be trusted, but every node in the blockchain network will have this ledger [7].
The content that the records store in the ledger can be anything, from it's rst implementation by the pseudonym Satoshi Nakamoto to store records of digital cash now known as Bitcoin, to storing general use data such as a vote result, which this paper will explore. As it's name implies, the records or data is stored in a chain of blocks. Each block also contains the cryptographic hash of the previous block. This helps in ensuring the data stored on blockchain is immutable, as any changes made to one block will change it's cryptographic hash that the next block refers to. Any discrepancy of data will be compared with data from other nodes. If the majority of other nodes doesn't have that same discrepancy, then the changed data will not be veried. Thus ensuring the integrity of the data [8].   The electronic voting system that we have made is divided into 3 main parts. First is the front-end, which will be how the user interact with the system. The front-end is a website that the user can access from their web browser on their electronic device. The second part is the back-end, which will store user authentication data. This way the user doesn't need to have an ethereum account or any ether to be able to vote. The third part is the blockchain, which will be the creation of a smart contract that allows users to vote on their chosen candidate as well as election organizer to register any new candidates for the next election. The interface for the systems will be divided in accordance with the navigation structure that can be seen in Figure 4.  and reset the result of past voting.
The system itself is divided into numerous class that works on dierent parts of the system, which could be seen on the diagram in Figure 6. We can see from the diagram at Figure 6 that the system has been divided into 6 classes. This classes has their own method that ensure that the system will be usable by it's users.  Here we can see that voter will need to register to have an account that will be used for voting. This is handled by the User class. Then they will need to activate their account from their email address. Once that is nished, voter can login to their account, which is displayed in the sequence diagram in Figure 8.   of the front-end will focus on creating a user friendly web application that can be used from either computer or mobile phone. The development of the back-end will focus on creating API that authenticate users based on data from national ID card.
The development of the blockchain will involve the creation of smart contract which will function as the overall logic of the voting system, which will be then deployed to the Ethreum blockchain network. The code from all three parts will be managed using Git. It will then be uploaded to code repository that can be accessed by the public. The code repository for this system can be accessed at https://github.com/FajriFadli/voting-ethereum

Testing
In order to test that the smart contract has been created with no aw, we will need to test it. We will Jurnal Ilmiah KOMPUTASI, Volume We want all the answer to this question to return as true. To answer this question, we will create a test script that return a value that will then be compared to an expected value. If the returned value match or equal the expected value, then the answer will be true and the aspect that is tested is completed without aw. If it's not, then the answer will be false and the aspect that is tested has some aw that will need to be xed before the smart contract deployed to the blockchain. An example of the test can be seen in Table 2.  Figure 10.
From the test result in Figure 10, we can conclude that all seven aspect has passed testing, which we can turn into the data in Table 3.
The data at Table 3 Figure 11 to Figure 18 are screen capture of the look and feel of the nished system.