Decentralized Voting System using Ethereum Smart Contracts
A tamper-resistant voting system built on Ethereum smart contracts.
Traditional voting relies on trusting the organisers to count honestly, and paper or centralized electronic systems can be hard to audit. A blockchain records every vote in a shared ledger that nobody can quietly change. This project builds a tamper-resistant voting system on Ethereum smart contracts for elections such as a student council or a society.
A Solidity contract holds the list of candidates, the voting period and the rules. Each eligible voter can vote once, which the contract enforces by recording that an address has voted, and results can be counted transparently by anyone. Voter eligibility is handled by an authentication step in which the administrator registers voters, and the write-up discusses how to keep a vote secret while still preventing double voting. A React front end connects through a wallet, shows the candidates, submits the vote as a transaction and confirms it. After the deadline a results dashboard shows the tally with charts. The contract is tested on a local network with cases for double voting, voting after the deadline and unauthorised access.
You will learn smart-contract development, transaction handling, testing and the trade-offs between transparency and privacy in voting. The Project Reference Guide covers the design and limitations, and the Reference Implementation contains the contract, tests and web application.