Inspiration
Voting is an important aspect for democratic countries. Elections decide which candidate is capable and also decides the future of that country therefore elections should be as transparent as possible and should have a high level of security. But the existing voting system has some flaws like a time-consuming process because the voter has to wait in queue for casting their vote also there is lesser security in the present voting system. Due to this, the inclination of voters is decreasing towards voting, and the voting percentage decreases. To overcome these issues and to improve the existing voting system we are designing a safe and secure voting application using Ethereum blockchain. An e-voting system must be secure, as it should not allow duplicated votes and be fully transparent while protecting the privacy of the attendees.
What it does
In this work, we have implemented and tested a sample voting application as a smart contract for the Ethereum network using the Ethereum wallets and the Solidity language. The web application is considered to allow voting for people who have an Ethereum wallet. After an election is held, eventually, the Ethereum blockchain will hold the records of ballots and votes. Users can submit their votes via the Website or directly from their Ethereum wallets, and these transaction requests are handled with the consensus of every single Ethereum node. This consensus creates a transparent environment for voting. In addition to a broad discussion about the reliability and efficiency of the blockchain-based e-voting systems, our application and its test results are presented in this project, too.
How we built it
We have used Solidity language to implement smart contracts in the Ethereum blockchain. The web app is used to allow people to vote using their Ethereum wallet. We have implemented the frontend using HTML5, CSS3, and Javascript with web3 and bootstrap libraries. This is directly connected to solidity with no intermediate backend
Challenges we ran into
The first one and probably the biggest one is onboarding users. Onboarding crypto native people or blockchain native people is easy and there are plenty of tools to leverage for this purpose. The biggest challenge is that we need to onboard the web3 community or the non-blockchain community in a seamless manner. The second thing, networks can get clogged every now and then. We are hoping this is going to change in future Ethereum versions which will change the Ethereum consensus mechanism and hopefully make it more scalable. The first one and probably the biggest one is onboarding users. Onboarding crypto native people or blockchain native people is easy and there are plenty of tools to leverage for this purpose. The biggest challenge is that we need to onboard the web2 community or the non-blockchain community in a seamless manner. The second thing, networks can get clogged every now and then. We are hoping this is going to change with Ethereum 2.0 which will change the Ethereum consensus mechanism and hopefully make it more scalable. Allowing users to vote who doesn't have Ethereum wallets was one of our challenges. We are thinking to solve this in future enhancements.
Built With
- css3
- ethereum
- html5
- javascript
- solidity

Log in or sign up for Devpost to join the conversation.