Traditional voting systems face challenges related to security, transparency, and potential fraud. A blockchain-based voting system can address these issues by providing a secure, transparent, and auditable platform for elections. This solution leverages distributed ledger technology, cryptographic techniques, and user-friendly interfaces to facilitate the entire voting process while ensuring voter privacy and anonymity.
Implement a robust digital identity verification process for voters to prevent unauthorized access. Utilize cryptographic techniques to ensure the integrity and authenticity of voter identities, enhancing the overall security of the voting system.
Utilize a blockchain to establish a decentralized and tamper-proof ledger for recording votes. Assign a unique identifier to each voter and record votes transparently and immutably. Employ cryptographic encryption to secure the transmission of votes from the voter to the blockchain, ensuring the integrity of the entire process.
Develop intuitive and user-friendly interfaces for both voters and election administrators. Provide step-by-step guidance to voters, ensuring a seamless and accessible voting experience. User interfaces should prioritize simplicity and accessibility for a diverse range of users.
Enable public access to the blockchain, allowing independent audits of the voting process. Implement transparency features that empower anyone to verify the accuracy of results while maintaining the privacy of individual voters. This ensures a high level of trust in the integrity of the election.
Empower independent parties, such as election observers or auditing agencies, to verify election results directly from the blockchain. This feature enhances the credibility of the election process by allowing external entities to confirm the accuracy of results independently.
1.the admin workplace would compromise of the panel and powers to perform operations like verification, Add candidate , registartion and also allows a admin to vote and get the results as such. the admin when logged in inside the Election2024 portal would be provided with a such interface. as seen ethereum smart contract allows for verification and validation of the user into the website. 2.after the admin gets logged inside the election2024 website he can host an election of his own basis on needs for the admin whenever when required and also end it when he desires generally doing this ensures access to perform this operation only through admin. accessing the admin operation would be possible by the private key: after using this key the admin can then continue the operation of his choice as such one of them being conducting voting and endding the session as such : 3. After this another major factor of each elections are candidates a simple and mordern user interface allows the admin to verify and approve only legit candidate to run for an election as such. this ensures transparency as such and make this system more secure. Interface to add candidate: a list of candidates approved to stand by admin: 4.Approval of each voter is important this is ensure by admin by checking each details as such and verifying whether the user is legit or not. if he is legit then he would be allowed to vote or else he wont be given permission to do so . an example of type of user who wouldnt be eligble for voting is given below: the interface would have each request at its sight and when the request is approved which would be done by admin this would ensure the independent verification of each user. the above image shows amount of request of voters which has come to him in order to vote are approved by admin by looking at each profile. this approval ensure only legit users to vote.
- As seen the admin can end a particular election when he needs doing it ensure verfication of each vote and stored in the blockchain and a protected election from each tampering one in ballot system as such.this ensures every election to be started smoothly and end with all process being safe and secure. when the admin needs the end of a election he would have the power to do so as such. At his dashboard he can perform operations to end it then he would be provided with a msg regarding the election has ended. after ensuring the msg has reached to the admin then he can ensure to have a glimpse of result by using the access to it which will provide him the name of winner:
- The general user would have a lesser number of operations available in compare to admin. A general user would be able to login into his account and then cast his vote. he would be provided the option to cast vote and get access to the result pane as such whenever it will be declared . this login access can be done for the user portal through either the private key or general key as such this would allow the user to login inside the election 2024 and make votes. Incase of scenario of general user as such he would be given three major section when he logged into the portal as such. this would include a part of section for register , entering vote and the result section. the part of regsitration is given to the user below here: this details would play a vital role as such beacause the admin have to approve each voter before enterring the vote for the to ensure the verification as such. here the portal of the admin can give us glimpse a differentiation between legitimate and illigitamate users as such: this would bring us with tamper proof voting and ensuring the election to work and move soundly as such.
- After once a user gets approved by the admin for voting he can then cast his vote for the candidates who are standing in the elections as such. this cast of votes will only be unlocked when the verification process is completed by admin and then a user can enter his votes. he would be given a list from which to vote as such. this voting would ensuring transparency and public access as such and which will help to store each vote respone with being manipulated. the ui which a voter would see on the screen when he is in voting boot section and if he is not verified the buttons would be disabled: the ui a voter would see on the screen when he is in voting boot section and if he is verified the button would be enabled:
- Once the user has cast his vote the button would disabled by itself as such and after that he would be given a pop up to see the results as soon as the results are declared as such and this would ensure him to get the notification whenever the result are declared and provided to him at earliest.
-
Download and install NodeJS
Download and install NodeJS from here.
-
Install truffle and ganache-cli using node packager manager (npm)
npm install -g truffle npm install -g ganache-cli
-
Install metamask browser extension
Download and install metamask from here.
-
Clone this repository
git clone https://github.com/arlbibek/dVoting.git cd dVoting
-
Run local Ethereum blockchain
ganache-cli
Note: Do not close
ganache-cli
(the blockchain network needs to be running all the time) -
Configure metamask on the browser with the following details
New RPC URL:
http://127.0.0.1:8545
(useport: 7545
for ganache gui, update it in the file:truffle-config.js
as well)Chain ID:
1337
-
Import account(s) using private keys from ganache-cli to the metamask extension on the browser
-
Deploy smart contract to the (local) blockchain network (i.e ganache-cli)
# on the dVoting directory truffle migrate
Note: Use
truffle migrate --reset
for re-deployments -
Launch the development server (frontend)
cd client npm install npm start
If you encounter error during
npm install
, please note that you might need to install Microsoft Visual C++ Redistributable packages from learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist (here is the direct download link for X64: aka.ms/vs/17/release/vc_redist.x64.exe)
By incorporating these features, a decentralized secure voting system can revolutionize elections, addressing concerns related to security, transparency, and fraud. The use of blockchain technology and cryptographic techniques ensures a robust and trustworthy platform that upholds the principles of democracy while embracing innovation.