Andreessen Horowitz unveils “Cicada,” a library that enables untraceable voting on Ethereum. An anonymous voting Solidity library for Ethereum has been made available by venture capital firm Andreessen Horowitz, popularly known as A16z. The library, under the name of “Cicada,” keeps polling place choices a secret until after the polls close.
Anonymous voting on Ethereum with A16z’s “Cicada” library
According to a blog post by A16z engineer Michael Zhu on May 24, it can also render the voter’s identity eternally unknowable when paired with zero-knowledge group membership systems like Semaphore.
According to Zhu, Cicada uses time-lock puzzles, a cryptography that enables users to encrypt personal values that can only be deciphered after a predetermined time.
Since 1996, these puzzles have been available. However, before 2019, they would have mandated users to disclose their values when the period had passed. This interfered with the ability of voting systems to count all the votes cast by users who submitted their ballots before going offline.
Giulio Malavolta and Aravind Thyagarajan, two cryptographers, introduced the idea of “homomorphic” time-lock puzzles in 2019. This made it possible to combine the riddles into one that was simpler to solve than the total of the different puzzles. The final riddle can only be solved by knowing the sum of the various values rather than the individual ones.
The A16z post claims that Cicada uses these homomorphic problems to keep track of votes even when users are not online.
Cicada implements zero-knowledge proof verification, protecting voting integrity
A16z researchers encountered a challenge when attempting to adapt Malavolta and Thyagarajan’s approach to the blockchain: Each option has to be encoded as a boolean value of “1” or “0.” As a result, attackers could attempt to enhance their voting strength by encoding votes improperly, for as, by encoding “100” as the value.
To address this issue, Cicada mandates that each ballot be accompanied by a zero-knowledge proof of its legitimacy, according to the post. Without disclosing the vote’s content, the proof demonstrates that the vote was appropriately encoded.
Only while the poll is being performed can votes be concealed by cicadas. By brute-forcing the answer to the riddle after the “poll has closed” or the time-lock period has gone, anyone can discover the results of a vote.
However, Cicada can be used in conjunction with zero-knowledge group membership systems like Semaphore, Semacaulk, or zero-knowledge state proofs to alleviate this issue, according to A16z. Solving the riddle by brute force will only show that a valid voter cast a ballot; it won’t show the identification documents used to verify the voter’s eligibility.
Zhu sent the URL to a sample Cicada contract that uses Semaphore to validate voter eligibility as an illustration.
Decentralized autonomous organizations (DAOs), the governing bodies that frequently oversee blockchain applications, have long included voting methods in their structures. However, as DAOs typically employ tokens to represent votes, a user’s power may be excessive if they control a significant amount of tokens.
For instance, on May 22, a hacker gained control of Tornado Cash by casting extra votes on a nefarious proposal, which he then used to siphon off all the money from the governance contract. Later, the attacker made the offer to return control to the users.
Sasha Ivanov, the founder of Waves, has proposed that if governance hacks like these are to be prevented, DAOs must switch to a more democratic voting method. On Twitter, Zhu admitted that on-chain voting is “not ready for high stakes real-world use cases yet,” but he voiced optimism for further development.
Many blockchain projects now feature governance structures that depend on on-chain voting. For instance, the stablecoin project Maker employs on-chain voting to choose the composition of its reserves and other decisions. In contrast, Uniswap and other DeFi platforms use on-chain governance to decide which blockchains to deploy.
A16z Enters Optimism Collective with Rollup Client Magi
A16z, a crypto venture capital fund, also unveiled Magi, a layer 2 OP Stack solution. A roll-up client (consensus layer) developed in Rust is the newest offering from a16z and represents the company’s entry into the Optimism Collective.
Magi serves as a consensus client and feeds new blocks to the execution client at the execution layer of Ethereum to advance the chain. Magi was created independently to increase the client diversity of rollup and replace op-nodes. In addition, the a16z team intends to enhance Magi with new sync techniques, support for alternate data availability layers, tracking the unsafe head (unconfirmed blocks), and better frameworks.
The a16z team is hopeful that Magi, even as a novel approach, might become a workable substitute for op-node after a few months of development. Op node is a Go-based implementation for roller clients supported by Op Labs.