Venture capital fund Andreessen Horowitz, also known as A16z, has released a Solidity library that can be used for anonymous voting on Ethereum. Called “Cicada,” the library prevents an individual voter’s choice from being known before polling ends. When combined with zero-knowledge group membership systems like Semaphore, it can also make the identity of the voter permanently unknowable, according to a May 24 blog post from A16z engineer Michael Zhu.
Excited to announce Cicada: a new building block for private on-chain voting. https://t.co/hxE4KL4Se6
Cicada relies on time-lock puzzles, a type of cryptography that allows users to encrypt secret values that can only be decrypted after a specific period of time has passed, Zhu stated.
These puzzles have been around since 1996. But before 2019, they would have required users to reveal their secret values once the time period had passed. In voting systems, this could have caused problems with users submitting votes and then going offline, preventing all the votes from being countable.
In 2019, the concept of “homomorphic” time-lock puzzles was proposed by cryptographers Giulio Malavolta and Aravind Thyagarajan. This allowed the puzzles to be added together to produce a final puzzle that was much easier to solve than the sum of the individual puzzles. The solution to the final puzzle reveals only the sum of the individual values without revealing the individual values making up this sum.
According to the A16z post, Cicada uses these homomorphic puzzles, allowing votes to be counted even if users go offline.
When attempting to transfer Malavolta and Thyagarajan’s system to the blockchain, A16z researchers ran into an obstacle to creating a fair voting system: Each choice needed to
Read more on cointelegraph.com