Andreessen Horowitz develops Cicada Library for anonymous voting on Ethereum

content provided with permission by FXStreet


  • Andreessen Horowitz has unveiled a new product called Cicada for anonymous voting on Ethereum.
  • The product keeps every vote accounted for throughout the poll.
  • Cicada also makes the voter’s identity unknowable when combined with zero-knowledge group membership systems.

Andreessen Horowitz, the venture capital fund also known as a16z, has disclosed a Solidity library capable of serving for anonymous voting on Ethereum. Christened ‘Cicada,’ the library ensures that every voter’s choice remains unknown before the polling ends. Details come from a May 24 blog post by Michael Zhu, the company’s engineer.

Also Read: a16z votes against proposal to deploy Uniswap v3 on BNB Chain

Andreessen Horowitz releases Cicada

Andreessen Horowitz’s new Cicada product has another use case beyond preventing an individual voter’s choice from being known before the end of a poll. Based on the announcement, it also makes the voter’s identity permanently unknowable, although this application hinges entirely on whether it is integrated with zero-knowledge group membership systems like Semaphore.

According to Zhu, the company’s Cicada depends on a type of cryptography puzzle that is time sensitive and allows users to encrypt personal values that can only be decrypted after a certain duration. Notably, the time-lock puzzles have existed for the past 27 years (since 1996), although from as early as 2019, they would have required users to reveal their values once the period elapsed.

When applied to the voting systems, the time-lock puzzles would have been troublesome in 2019 with users submitting votes and then going offline as it would prevent all the votes from being countable.

Further, cryptographers Giulio Malavolta and Aravind Thyagarajan proposed the concept of ‘homomorphic’ time-lock puzzles, allowing the combination of the puzzles to achieve a single final puzzle that is easier to solve compared to the sum of the individual puzzles. In this regard, the solution to the final puzzle only discloses the sum of the individual values while concealing the individual values that make up the sum.

Cicada uses homomorphic puzzles to be counted when users are online or offline

The a16z post also notes that Cicada uses the same homomorphic puzzles to allow the counting of votes whether users are online or not. The venture capital firm’s researchers encountered a problem when they tried developing a fair voting system to transfer 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 attackers could try to increase their voting power by incorrectly encoding the vote β€” by encoding “100” as their value, for example.

Cicada needs voters to submit a zero-knowledge proof of ballot validity and individual ballots as part of the solution to the above obstacle. The proof, therefore, indicates that the vote was encoded correctly, although without disclosing the contents of the vote.

Cicada only conceals votes while the poll is in session

Once the “poll has closed” or the time-lock period elapses, anyone can determine the contents of a vote by brute-forcing the solution to the puzzle. Nevertheless, a16z highlights that this problem s solvable by merging Cicada with zero-knowledge group membership systems such as Semaphore, Semacaulk, or zero-knowledge state proofs.

In such a case, while brute-forcing the puzzle only reveals that an eligible voter’s vote was cast, it would not reveal the details or logins used to prove the voter’s eligibility. To put this in perspective, Zhu shared a link to a sample contract produced using Cicada that also hinges on Semaphores to prove the eligibility of individual voters.

Voting systems and DAOs

Based on the report, there appears to be a long-standing relationship between decentralized autonomous organizations (DAOs), the governing bodies that usually run blockchain apps. In many cases, however, DAOs employ tokens to represent votes, meaning individual users can have enormous influence if they hold many tokens.

Case in point: An attacker commandeered Tornado Cash on May 22 by casting extra votes on a malicious proposal and used it to drain all the funds from governance contracts. The exploiter then offered to give back control to users. According to Waves founder Sasha Ivanov, however, to avoid governance attacks, DAOs must move to a more democratic voting system.Β