Is the Future of Decentralized Elections Taking Shape on
@MinaProtocol?
Mina might be paving the way for the future of decentralized elections. Developed by the
@node_101 team on Mina, zkVot aims to achieve this with its innovative architecture.
What is zkVot?
zkVot is a groundbreaking protocol that enables censorship-resistant, anonymous, trustworthy, and transparent voting processes on Mina. By leveraging the functionalities of o1js and zkApps, zkVot ensures a high level of censorship resistance and operates with a modular structure.
The protocol consists of five modular layers:
Voting Layer: This is the layer where voters cast their votes. Each voter generates a zero-knowledge proof (ZKP) on their own device, such as a web browser, to validate their vote. ZK technology ensures that it is impossible to determine who voted for whom, guaranteeing privacy. Since every voter generates their own ZK proof, the system becomes more scalable.
Communication Layer: In this layer, votes are securely transmitted to the network. Instead of using a centralized server, zkVot relies on a data availability (DA) layer. The protocol primarily uses Celestia and Avail as DA layers but can integrate others. The use of a DA layer ensures that all votes remain available to everyone until the election is completed.
Aggregation Layer: This layer ensures the validity, accuracy, and total count of votes through zk-SNARKs. The counting process is entirely transparent and resistant to manipulation. For instance, no vote can be altered or falsely added during this process.
Settlement Layer: In this layer, all votes and results undergo one final check for accuracy and validity. This step finalizes the election results and confirms their reliability. zkVot has designated Mina as the settlement layer to ensure compliance with all requirements.
Storage Layer: The layer where all static data, such as election questions, candidates, and other related information, is stored. Voters retrieve this static data from the storage layer before casting their votes.
How Do These Layers Work Together in an Election?
1. Voters read election data from the settlement layer with EID (Election ID)
2. Voters get election details from the storage layer with election data
3. Voters generate votes as a ZKP. Thanks to ZKP, each vote is anonymous and takes approximately 15 seconds to generate. The generated ZKP verifies the validity of the vote and provides the nullifier and candidate result.
4. Voters send individual votes to the communication layer
5. Aggregation layer read votes from the communication layer
6. Aggregation layer generate aggregated ZKP with parallel parallel aggregation
7. Aggregation layer send the aggregated ZKP to settlement layer for settlement
8. Settlement layer enforces AMC for censorship resistance
You might be wondering—what is AMC in this process? AMC (Accepting the Maximum Condition) is a unique mechanism that ensures censorship resistance in zkVot.
Censorship resistance is essential for decentralized voting systems like zkVot because it protects the integrity and fairness of the election process. Without censorship resistance, malicious actors could hide, modify, or selectively include votes, potentially distorting election outcomes. It could also discourage voter participation if people fear that their votes might be invalidated or ignored.
Let’s explain AMC simply. Votes are collected by an aggregator and sent to the settlement layer. AMC ensures that the settlement layer only accepts a new batch of votes if the number of votes submitted is greater than the previous batch.
Here’s how it works:
- If an aggregator submits N votes, another aggregator must submit more than N for it to be accepted.
- For example, in an election with 1,000 voters, if the first aggregator submits 900 votes, any new aggregator must submit more than 900 votes for their batch to be accepted.
- If an aggregator submits 920 votes, that count becomes the new threshold.
- Eventually, the aggregator that submits the highest number of votes determines the final election results.
This mechanism ensures that all possible votes are included in the election results, preventing censorship or selective vote exclusion.
As long as there is at least one honest aggregator in the system, the process runs smoothly with 1/N trust assumption, and the risk of censorship is eliminated, as a result with more votes should always be more honest. Note here that the aggregator is essentially a ZK rollup, and it has no chance to lie. This forces all votes that are included in the aggregation to be correct.
Pretty impressive system, right? With zkVot and AMC, Mina might truly revolutionize decentralized elections in the future.