Polygon ZKVote is a voting platform for growing the web3.0 community.Polygon ZKVote is used to protect the privacy of voter using Zero Knowledge.
This application allows anyone to create new voting process or to vote on already existing processes. In order to vote users need to register their identity using Discord. Registration is done with the use of Semaphore smart contracts. User’s IdentityCommitment is stored on chain, but their identity remains private. When casting a vote, proof of registration is created and verified by Semaphore smart contract. Users are not allowed to vote on the same voting process twice. Double voting is disabled with the use of external nullifiers (voting process id). Nullifier hash (hash of external nullifier and identity nullier) is stored on chain and checked every time voting happens, which prevents double voting.
This application can be used by DAOs as a governance tool. DAO members can vote on important decisions without revealing which voting option they chose. This privacy aspect is really important as it prevents discrimination and possible conflicts inside DAO. Polygon ZKVote can essentially be used for any big public decision, where keeping privacy is important.
Note: Currently this demo is only for POC. Here we are using Discord server as authorization to create DAO,joined DAO and create identity. In future this will be replace by other authentication system.Users only get access to the voting page and get voting rights after the user is verified by Discord role.