Zero Knowledge Proof on Top of Blockchain for Anonymous and Verifiable E-Voting System
摘要
Electronic Voting Machines and online voting systems have been intermittently employed but have faced scrutiny due to concerns about transparency and verifiability. The methodology employed in this study ensures transparency through the integration of Blockchain and enhances verifiability by incorporating zk proofs. To safeguard the anonymity of voters, a zero-knowledge Merkle Membership Proof, utilizing zk-snarks, is applied. This ensures that only voters capable of providing the zk proof of membership from the designated set listed on the blockchain are eligible to cast their votes. To counteract potential issues related to double voting, the implementation of nullifiers becomes crucial. In this context, nullifiers are confidential phrases that are depleted upon the casting of a vote. The formation of ballots involves combining the voter’s preferences, obscured with removable randomness, and further encrypting them using RSA. This work introduces and analyzes several procedural modifications in the existing blockchain based voting systems with the aim to enhance the overall integrity, cost and security of the voting system. The implementation of this work enables voters to cast a vote with 1.6 million gas units with less than 4 s time duration.