A Web Application for Anonymous Elections on Blockchain
ElectAnon [1] is a blockchain-based election protocol, implemented with smart contracts and zero-knowledge proof mechanisms. There are several different phases and actors in the protocol. There are 3 main actors: Election Authority, Proposers and Voters. These actors take a role in 7 different phases: Setup, Register, Proposal, Commit, Reveal and Completed. Each actor has different responsibilities and actions in each different phase. Currently, ElectAnon implementation includes solidity smart contracts, Semaphore zero-knowledge circuits [2], NodeJS based tests and libraries to interact with the protocol.
In this project you will create a web application for ElectAnon to seamlessly interact with the election protocol. The web application will cover user interfaces and interactions for 3 different actors and 7 different states to present a complete election experience. The application will be based on JavaScript web frameworks like React, Vue etc; and will use web3 technologies like Ethereum, Metamask, Solidity, Hardhat, Ethersjs and web3.js.
[1] Onur, C., Yurdakul, A.,ElectAnon: A Blockchain-Based, Anonymous, Robust and Scalable Ranked-Choice Voting Protocol, 2022
[2] Semaphore V1 https://semaphore.appliedzkp.o