funded
Zero-Knowledge (zkSNARK) Voting Protocol on Cardano for DAO Governance [open source]
Current Project Status
In Progress
Amount
Received
₳42,600
Amount
Requested
₳177,500
Percentage
Received
24.00%
Solution

To address the weaknesses of digital voting systems we develop an open-source voting protocol on Cardano using zero-knowledge proofs (zkSNARK) to ensure voter privacy and uphold vote integrity.

Problem

Current digital voting systems lack privacy, are vulnerable to fraud and coercion, and cant always verify votes correctly. Blockchain alone doesn’t solve this, requiring ZK proofs for more security.

Impact Alignment
Feasibility
Value for Money

TrustLevel

1 member

Zero-Knowledge (zkSNARK) Voting Protocol on Cardano for DAO Governance [open source]

Please describe your proposed solution

Project Summary:

We aim to develop a state-of-the-art Zero-Knowledge (ZK) voting protocol on Cardano that ensures privacy, security, and scalability for blockchain-based voting systems. Using zk-SNARKs, our protocol will guarantee voter anonymity while maintaining the ability to verify that votes are counted accurately without revealing voters' identities or choices.

Background and Rationale:

The essence of democracy (and DAO Goveranacne) lies in the integrity and transparency of the voting process. Traditional voting systems often struggle with issues such as voter fraud, coercion and lack of accessibility, and digital voting systems often struggle with ensuring voter privacy and security from cyberthreats. With blockchain technology, we have an innovative solution to these problems by providing a decentralised and immutable ledger, but the public nature of blockchains can compromise voter anonymity and privacy.

Proposed Solution:

We propose Zero-Knowledge Proofs (zk-SNARKs) to create a voting protocol that maintains all the advantages of blockchain while protecting voter anonymity and ensuring vote integrity and verifiability.

<u>Protocol Layout</u>

1. Voter Registration and Anonymity:

  • Decentralized Identity Verification: Voters register through a DApp with simple UI where they prove their eligibility using zero-knowledge proofs
  • Anonymous Credentials: Once verified, the voter receives a ZK credential that allows them to vote without revealing their identity. This credential proves that they belong to the set of registered voters without indicating which individual they are.

2. Voting Process:

  • Vote Casting: Voters cast their votes using the DApp UI. Each vote is converted into a zk-SNARK, which comprehensively proves that the vote is valid according to the voting rules (e.g., the voter has not voted before) without revealing the voter’s identity or choice.
  • Smart Contracts: A smart contract receives and verifies the zk-SNARKs. If the proof is valid, the contract records the vote on the blockchain and updates the tally for the respective option, all without revealing any individual vote data.

3. Vote Tallying and Verification:

  • Aggregate Tallying: At the end of the voting period, the smart contract will execute a function to tally all votes that have been cast and validate the final count using a cryptographic accumulator.
  • Result Verification: Voters can independently verify that their vote was included in the final tally through a "zk proof of inclusion," which assures them that their vote was counted without revealing which vote was theirs.

<u>Technical Framework</u>

1. Setup:

  • zk-SNARK Circuit: Cryptographic circuit that defines the computation verifying both voter eligibility and the correctness of their vote without revealing their identity or choices.
  • Trusted Setup: One-time multiparty computation (MPC) ceremony to generate the public parameters (common reference string) used in zk-SNARK proofs. This setup is crucial to prevent the sprover from creating fake proofs.
  • Proof Generation and Verification: Integrate libraries like libsnark or ZoKrates for creating and verifying zk-SNARK proofs. These proofs are generated off-chain and verified on-chain by the smart contract.

2. Smart Contracts:

  • Voter Registration Contract: Registration of voters by verifying their zk-SNARK proofs of eligibility and issuing zk-based credentials for voting.
  • Voting Contract: Verifies zk-SNARK proofs that confirm a valid vote according to the voter’s credential and records the vote anonymously.
  • Tally Contract: Aggregates votes and computes the final results, ensuring that all votes are counted correctly and maintaining transparency in the final tally.

3. UI:

  • DApp Interface to communicates with Cardano wallets for the blockchain interactions.
  • zk-SNARK Proof Generation: Incorporate client-side libraries that can compile to WebAssembly (WASM) for generating zk-SNARK proofs efficiently in the browser.
  • Mockup:

Image file

4. Backend:

  • Off-Chain Server: We need to host the APIs for off-chain computations like generating or verifying zk-SNARK proofs and handling data that should not be stored on-chain for privacy reasons.
  • Blockchain Interaction Layer: We can use tools like Ouroboros, a Cardano node, or third-party APIs to submit transactions to the blockchain, monitor contract events, and query blockchain state.
  • Database Management: We need to store the records of voters and votes.

Please define the positive impact your project will have on the wider Cardano community

Alignment with Challenge KPIs:

  • More open-source projects, developers, and users.
  • More open-source tools and frameworks.
  • Increased open-source contributions and maintainers.
  • Improved adoption of Cardano technology.

Impact

With this proposal we aim to have a positive impact on the Cardano Ecosystem and think we could achieve the following:

  • Strengthened Cardano Governance: With more secure and private voting mechanisms, the protocol can lead to stronger and more effective governance models within the Cardano ecosystem.
  • Technological Leadership: Some other blockchain already have or are experimenting with these kind of voting protocols. To make Cardano future-proof and the go-to-blockchain for decentralized apps and organisations we need to close the gap.
  • Community Engagement: DAOs need active communities. With better voting mechanisms we can get to higher engagement rates, as members feel more secure and empowered to participate in governance decisions without risking their privacy.

Metrics:

1. Adoption Rate:

  • Measures: Count the adoption of the zk-SNARKs protocol by DAOs and DApps on Cardano, and benchmark against other leading blockchains.
  • Benchmark: Target at least 5 DAO adoptions within the first year

2. Community Engagement Level:

  • Measures: Calculate participation rates in governance, frequency of engagement, and collect community feedback on their sense of security and empowerment.
  • Benchmark: Achieve increased participation rates and an increase in governance interactions, and overall positive feedback regarding the protocol.

What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

Know-how &amp; Collaborations:

TrustLevel has a proven track record of successful participation and contribution in the voting and reviewing processes across multiple platforms, including Project Catalyst, Arbitrum, and SingularityNet, over the last few years. Our experience has equipped us with a deep understanding of the nuanced challenges and specific requirements of effective voting and reviewing systems.

We have active collaborations with the following teams in Cardano:

- Lidonation: Reputation-Scores for Catalyst Reviewers (https://projectcatalyst.io/funds/11/cardano-use-cases-concept/reputation-scores-for-catalyst-proposers-and-reviewers-by-lidonation-and-trustlevel)

- Photrek: Development of a community tool for voting calculations and community engagement in SingularityNet (https://proposals.deepfunding.ai/graduated/accepted/ed600af3-885c-45bc-a874-56d2dde371ce)

- SidanLab and MeshJS. Smart Contract Development (https://projectcatalyst.io/funds/11/cardano-open-developers/aiken-open-source-smart-contract-library-by-meshjs-and-trustlevel)

Feasibility:

  • Pilot Testing: We will conduct a series of pilot tests to refine the system, using real-world data and scenarios to ensure that the system performs as intended.
  • Feedback Loops: Implement feedback mechanisms to gather insights from the community, which will be used continuously to improve the system.

Contributions:

We have published several articles and pots detailing our findings and insights into the reviewing and decision-making processes:

Additional Resources:

  • <https://arxiv.org/pdf/2212.06388>
  • <https://blog.o1labs.org/zero-knowledge-proofs-for-voting-3c6a6d5d89db>
  • Video that demonstrates our approach (not our own video):

https://www.youtube.com/watch?v=rvpNnjnBpP4&amp;t=5s

What are the key milestones you need to achieve in order to complete your project successfully?

Milestone 1: M1 Architecture Documentation

Objective:

Define and document the complete technical architecture, including cryptographic setup, smart contract specifications, and system design for the voting protocol.

Tasks:

  • Define the cryptographic primitives and protocols (zk-SNARKs setup).
  • Architect the smart contract layers and interactions.
  • Outline system infrastructure and user interface design.

Duration: 1 months

  • Deliverables and acceptance criteria:
  • Architecture document.
  • Initial design prototypes for DApp interfaces.
  • Evidence of milestone completion:
  • Published documents, specification and code on Github repository

Milestone 2: M2 Development of Prototype (Backend)

Objective: Develop a working prototype of the zk-SNARKs voting system, including basic smart contracts and a simple user interface to demonstrate the functionality.

Tasks:

  • Develop zk-SNARK circuits for voter registration and vote casting.
  • Implement smart contracts for voter registration, voting, and tallying.

Duration: 2 months

Deliverables and acceptance criteria:

  • Functional zk-SNARK circuits.
  • Deployed smart contracts on Cardano testnet.

Evidence of milestone completion:

  • Published documents, specification and code on Github repository.

Milestone 3: M2 Development of Prototype (UI)

Objective: Develop a simple user interface to demonstrate the functionality.

Tasks:

  • Create a basic frontend DApp for interaction with smart contracts.
  • Integrate backend systems for off-chain computations.

Duration: 2 months

Deliverables and acceptance criteria:

  • Initial version of the DApp for testing.
  • Backend server setup for zk-SNARK proof generation.

Evidence of milestone completion:

  • Published documents, specification and code on Github repository.

Milestone 4: M3 Testing and Advanced Development

Tasks:

  • Prototype testing and collect feedback.
  • Optimize smart contracts and zk-SNARK circuits.

Duration: 2 months

Deliverables and acceptance criteria:

  • Audit report.
  • Updated smart contracts with optimizations.

Evidence of milestone completion:

  • Published documents, specification and code on Github repository.

Final Milestone: M4: Marketing, Community Engagement, and Closeout Report

Objective: Market the final product to potential users within the Cardano ecosystem, engage with the community to drive adoption, and prepare comprehensive project documentation and reports.

Tasks:

  • Marketing activities within the Cardano ecosystem.
  • Provide user guides to educate users.
  • Compile and submit a closeout report.

Duration: 1 months

Deliverables and acceptance criteria:

  • Marketing and documentation materials.
  • Comprehensive closeout report.

Evidence of milestone completion:

  • Published documents, specification and code on Github repository.
  • Submitted report and video.

Who is in the project team and what are their roles?

TrustLevel was founded by Dominik Tilman with the vision to develop methods and protocols to make the reliability of data and information measurable. Since then, we have received various grants (Cardano, SingularityNet, Arbitrum) and projects that have continuously improved our knowledge and developed tools and enabled us to provide better reviewing and voting processes and systems in decentralised communities. All our outputs are open-source.

TrustLevel Core Team:

Please provide a cost breakdown of the proposed work and resources

Milestone 1: Architecture Documentation

Budget Allocation: 60,000 ADA

Estimated Hours: ~300 hours at 150 ADA/hour = 45,000 ADA

+ Cost for Licences and Tools: 10,000 ADA

+ Project Management and Coordination: 5,000 ADA

Milestone 2: Development of Backend

Budget Allocation: 30,000 ADA

Estimated Hours: ~200 hours at at 150 ADA/hour

Milestone 3: Development of UI

Budget Allocation: 30,000 ADA

Estimated Hours: ~200 hours at at 150 ADA/hour

Milestone 4: Testing and Advanced Development

Budget Allocation: 30,000 ADA

Estimated Hours: ~200 hours at 150 ADA/hour

Milestone 5: Marketing, Community Engagement, and Closeout Report

Budget Allocation: 27,500 ADA

Estimated Hours: 150 hours at 150 ADA/hour = 22,500 ADA

+ Closeout report and project documention: 5,000 ADA

No dependencies.

How does the cost of the project represent value for money for the Cardano ecosystem?

Strategic Investment: The investment in this project represents substantial value for money by providing crucial improvements to voting protocols in Cardano.

Expertise and Complexity: Costs reflect fair compensation for specialized skills in data analysis and software development. The budget allocations align with prevailing rates in the industry, determined by the experience and skill set of professionals.

Risk mitigation: As a team, we willingly accept the currency risk of being paid in ADA, demonstrating our commitment and adaptability in a dynamic cryptocurrency environment. A decrease in the ADA price is a risk we bear, while any increase allows us to expand the scope.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00