aragonzkresearch / ovote

Offchain Voting with Onchain Trustless Execution https://github.com/aragonzkresearch/research/blob/main/ovote/ovote.pdf

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ovote Circuits Contracts

Research project

OVOTE: Offchain Voting with Onchain Trustless Execution

This repo contains the OVOTE circuits and contracts, compatible with the ovote-node and ovote-clientlib. All code is in early stages.

More details on the OVOTE circuits and contracts design can be found at the OVOTE document.

OAV: Onchain Anonymous Voting

Reusing the same census created for OVOTE, users can vote onchain anonymously.

In OAV, voters generate a zkSNARK proof in their browsers proving that they know the private key which public key is in the Census MerkleTree and that they generated a valid signature over the vote value with that key.

Test

  • Circuits
    • Needs installed: circom, nodejs (version: >16)
    • Install the dependencies: npm install
    • Run the tests: npm run test
  • Contracts
    • Needs installed: foundry
    • Run the tests: forge test

About

Offchain Voting with Onchain Trustless Execution https://github.com/aragonzkresearch/research/blob/main/ovote/ovote.pdf

License:GNU General Public License v3.0


Languages

Language:Solidity 74.9%Language:JavaScript 24.3%Language:Makefile 0.6%Language:Nix 0.2%