Aragon ZK Research and Aztec have collaborated to conduct research on private voting for Nouns DAO over the past few months. They have recently completed their research and produced a proof-of-concept, as well as general and technical reports. Additionally, they have developed two time-locked cryptography protocols to support their work.
The Nouns DAO Private Voting Research Sprint was funded by Nouns DAO, a renowned social and cultural DAO that explores innovative governance experiments. The goal of this research was to find solutions for private voting within their organization. Three teams, including Aragon ZK Research and Aztec, were funded for the research project, which had a three-month timeline.
The primary question that the research sprint aimed to answer was how far it is possible to build a user-friendly, trustless, fair, weighted, and ballot-secret voting system in Ethereum. The answer to this question, based on the progress made during the research sprint, is a resounding yes. A demo has been developed to showcase the capabilities of the private voting system.
It is worth noting that the only parameter not addressed in this research was weighted voting. The proof of concept allows for one vote per NFT (non-fungible token). Therefore, if an individual owns multiple NFTs, they will need to cast a separate ballot for each NFT.
Onchain private voting is essential because it addresses the need for privacy in DAOs. With all votes being public on the blockchain, DAO members may not want their decisions to be visible to the public. Private voting ensures that sensitive decisions, such as voting against friends or close colleagues, can be made without the fear of public scrutiny. It also enhances security by preventing vote manipulation through blackmail or bribes. The onchain aspect of private voting eliminates the need for intermediaries and relies solely on the blockchain for storing results.
The private voting proof of concept developed by the teams adheres to the parameters set by Nouns DAO. It is important to note that this proof of concept is not yet a market-ready product and has not undergone auditing. Interactions with the proof of concept are done through the command-line interface (CLI) rather than a user-friendly interface.
To participate in the private voting process, wallet owners need to register their public key before the voting begins. This registration process is a one-time requirement per address. Once registered, anyone can create a voting process using the CLI. Registered wallets that meet eligibility requirements, such as holding NFTs at the time of the voting process creation, can generate a ballot and proofs and submit their vote to the Nouns voting smart contract. Tallying of the votes occurs after the voting period has ended, and the decryption key is released. The outcome of the voting process can be verified by tallying the results without revealing voter identities.
Moving forward, the teams will focus on researching multisig support and vote aggregation solutions to enhance the private voting system. Aragon ZK Research will apply the insights gained to DAOs built on Aragon OSx by developing an Aragon OSx plugin for private voting. Aztec Labs will continue contributing to Noir’s development to improve the developer and user experiences with trustless private voting.
To delve into the details of their research, you can explore the provided documentation and repositories.