A16z brengt anoniem stemsysteem voor Ethereum uit

Durfkapitaalfonds Andreessen Horowitz, ook wel bekend als A16z, heeft een Solidity-bibliotheek uitgebracht die kan worden gebruikt voor anoniem stemmen op Ethereum. De bibliotheek, genaamd "Cicada", voorkomt dat de keuze van een individuele kiezer bekend wordt voordat de peiling eindigt. In combinatie met zero-knowledge groepslidmaatschapssystemen zoals Semaphore, kan het de identiteit van de kiezer ook permanent onkenbaar maken, volgens een blogpost van 24 mei van A16z-ingenieur Michael Zhu.

Cicada vertrouwt op time-lock-puzzels, een soort cryptografie waarmee gebruikers geheime waarden kunnen coderen die pas na een bepaalde tijd kunnen worden gedecodeerd, aldus Zhu.

Deze puzzels bestaan ​​al sinds 1996. Maar vóór 2019 zouden gebruikers hun geheime waarden moeten onthullen zodra de tijdsperiode was verstreken. In stemsystemen kan dit problemen hebben veroorzaakt met gebruikers die stemmen indienen en vervolgens offline gaan, waardoor niet alle stemmen telbaar zijn.

In 2019 werd het concept van "homomorfe" tijdslotpuzzels voorgesteld door cryptografen Giulio Malavolta en Aravind Thyagarajan. Hierdoor konden de puzzels bij elkaar worden opgeteld om een ​​uiteindelijke puzzel te maken die veel gemakkelijker op te lossen was dan de som van de afzonderlijke puzzels. De oplossing van de laatste puzzel onthult alleen de som van de individuele waarden zonder de individuele waarden te onthullen waaruit deze som bestaat.

Volgens de A16z-post gebruikt Cicada deze homomorfe puzzels, waardoor stemmen kunnen worden geteld, zelfs als gebruikers offline gaan.

Bij een poging om het systeem van Malavolta en Thyagarajan over te zetten naar de blockchain, stuitten onderzoekers van A16z op een obstakel voor het creëren van een eerlijk stemsysteem: elke keuze moest worden gecodeerd als een booleaanse waarde van "1" of "0". Dit betekende dat aanvallers konden proberen hun stemrecht te vergroten door de stem onjuist te coderen, bijvoorbeeld door "100" als hun waarde te coderen.

Om dit probleem op te lossen, vereist Cicada dat kiezers samen met elke stemming een nulkennisbewijs van de geldigheid van het stembiljet indienen, aldus de post. Het bewijs toont aan dat de stem correct is gecodeerd, maar zonder de inhoud van de stem te onthullen.

Zie ook: Anchorage Digital opent DeFi-stemmen voor bewaringsklanten

Cicada voorkomt alleen dat stemmen bekend worden terwijl de peiling wordt gehouden. Zodra de "poll is gesloten" of de tijdslotperiode is verstreken, kan iedereen de inhoud van een stemming bepalen door de oplossing van de puzzel bruut te forceren. A16z suggereerde echter dat dit probleem kan worden opgelost door Cicada te combineren met zero-knowledge groepslidmaatschapssystemen zoals Semaphore, Semacaulk of zero-knowledge state proofs. In dit geval zal het brute forceren van de puzzel alleen onthullen dat de stem is uitgebracht door een in aanmerking komende kiezer, maar niet de inloggegevens die zijn gebruikt om de geschiktheid van de kiezer te bewijzen.

Zhu gaf bijvoorbeeld een link naar een voorbeeldcontract dat was opgesteld met behulp van Cicada en dat ook vertrouwt op Semaphore om te bewijzen dat de kiezer in aanmerking komt.

Stemsystemen zijn al lang een onderdeel van gedecentraliseerde autonome organisaties (DAO's), de bestuursorganen die vaak blockchain-apps beheren. Maar in de meeste gevallen gebruiken DAO's tokens om stemmen te vertegenwoordigen, wat betekent dat individuele gebruikers een buitensporige invloed kunnen hebben als ze een groot aantal tokens hebben. Op 22 mei nam een ​​aanvaller bijvoorbeeld de controle over Tornado Cash over door extra stemmen uit te brengen op een kwaadaardig voorstel en dit te gebruiken om alle fondsen van het bestuurscontract leeg te maken. De aanvaller bood later aan om de controle terug te geven aan gebruikers.

Waves-oprichter Sasha Ivanov heeft betoogd dat DAO's moeten overstappen naar een meer democratisch stemsysteem om dergelijke aanvallen op het bestuur te voorkomen.

Bron: https://cointelegraph.com/news/a16z-releases-anonymous-voting-system-for-ethereum