A16z releases anonymous voting system for Ethereum

Enterprise capital fund Andreessen Horowitz, often known as A16z, has launched a Solidity library that can be utilized for nameless voting on Ethereum. Referred to as “Cicada,” the library prevents a person voter’s selection from being recognized earlier than polling ends. When mixed with zero-knowledge group membership methods like Semaphore, it may well additionally make the identification of the voter completely unknowable, in response to a Might 24 weblog submit from A16z engineer Michael Zhu.

Cicada depends on time-lock puzzles, a kind of cryptography that permits customers to encrypt secret values that may solely be decrypted after a selected time period has handed, Zhu acknowledged.

These puzzles have been round since 1996. However earlier than 2019, they might have required customers to disclose their secret values as soon as the time interval had handed. In voting methods, this might have brought on issues with customers submitting votes after which going offline, stopping all of the votes from being countable.

In 2019, the idea of “homomorphic” time-lock puzzles was proposed by cryptographers Giulio Malavolta and Aravind Thyagarajan. This allowed the puzzles to be added collectively to provide a closing puzzle that was a lot simpler to unravel than the sum of the person puzzles. The answer to the ultimate puzzle reveals solely the sum of the person values with out revealing the person values making up this sum.

Based on the A16z submit, Cicada makes use of these homomorphic puzzles, permitting votes to be counted even when customers go offline.

When trying to switch Malavolta and Thyagarajan’s system to the blockchain, A16z researchers bumped into an impediment to creating a good voting system: Every selection wanted to be encoded as a boolean worth of “1” or “0.” This meant that attackers might attempt to enhance their voting energy by incorrectly encoding the vote — by encoding “100” as their worth, for instance.

To resolve this downside, Cicada requires voters to submit a zero-knowledge proof of poll validity together with every poll, the submit mentioned. The proof reveals that the vote was encoded appropriately, however with out revealing the contents of the vote.

Associated: Anchorage Digital opens up DeFi voting for custody clients

Cicada solely prevents votes from being recognized whereas the ballot is being performed. As soon as the “ballot has closed” or the time-lock interval has handed, any particular person can decide the contents of a vote by brute-forcing the answer to the puzzle. Nonetheless, A16z prompt that this downside may be solved by combining Cicada with zero-knowledge group membership methods like Semaphore, Semacaulk or zero-knowledge state proofs. On this case, brute forcing the puzzle will solely reveal that the vote was forged by an eligible voter however is not going to reveal the credentials used to show the voter’s eligibility.

For example, Zhu offered a hyperlink to a pattern contract produced utilizing Cicada that additionally depends on Semaphore to show voter eligibility.

Voting methods have lengthy been a part of decentralized autonomous organizations (DAOs), the governing our bodies that always handle blockchain apps. However usually, DAOs use tokens to symbolize votes, which implies that particular person customers can have an outsized affect in the event that they maintain numerous tokens. For instance, on Might 22, an attacker took control of Tornado Cash by casting additional votes on a malicious proposal, utilizing it to empty all the governance contract’s funds. The attacker later supplied to give back control to customers.

Waves founder Sasha Ivanov has argued that DAOs should transfer to a extra democratic voting system if governance assaults like these are to be averted.