In a significant step forward for anonymous voting on the Ethereum platform, venture capital fund Andreessen Horowitz, or a16z, has released a Solidity library called Cicada. Cicada notably prevents the choice of an individual voter from being disclosed before polling ends. It also has the potential to make the identity of the voter permanently unknowable when combined with zero-knowledge (ZK) group membership systems like Semaphore, as revealed in a May 24 blog post by a16z engineer Michael Zhu.
Cicada utilizes time-lock puzzles, a cryptographic method that enables users to encrypt secret values that are only decryptable after a specified period has passed. The implementation of homomorphic time-lock puzzles in 2019 made it possible for the puzzles to be added together, producing a final puzzle that is significantly easier to solve than the sum of the individual puzzles. The result discloses only the sum of the individual values without revealing the values incorporated in this sum.
Despite advances in the homomorphic puzzle system, a16z researchers faced a challenge in bringing Malavolta and Thyagarajan’s system to the blockchain: each choice needed to be encoded as a boolean value of “1” or “0.” This meant that an attacker could try to increase their voting power by incorrectly encoding their vote, using a value like “100” instead.
Cicada addresses this issue by requiring voters to submit a zero-knowledge proof of ballot validity along with each ballot. The proof demonstrates that the vote was encoded correctly without revealing the vote contents. However, Cicada only prevents votes from being known while polling is in progress. After the time-lock period has passed, anyone can determine the contents of a vote through brute-force solving of the puzzle. Nonetheless, a16z suggests this issue can be resolved by combining Cicada with zero-knowledge group membership systems such as Semaphor, Semacaulk, or ZK state proofs, effectively revealing only the eligibility of the voter and not their credentials.
Anonymous voting systems have long been an essential requirement for decentralized autonomous organizations (DAOs), which often manage blockchain applications. Typically, DAOs utilize tokens to represent votes, allowing users with a large number of tokens to wield disproportionate influence. As DAOs look to establish more democratic voting systems to avoid governance attacks, Cicada’s release signals a significant development in enabling anonymous voting on the Ethereum platform.
Source: Cointelegraph