Repolode
TrustLevel

TrustLevel/ZK-Voting-App

App de votação privada on-chain na Cardano, em que os eleitores comprovam sua participação com provas de conhecimento zero e mantêm seus votos anônimos.

Estrelas
5
Forks
4
Issues abertas
0
Último commit
anteontem

O que é?

O ZK Voting App é um aplicativo de votação desenvolvido na blockchain Cardano. Um organizador cria um evento, convida participantes por e-mail e publica os contratos de votação on-chain. Cada participante gera uma identidade Semaphore no navegador e registra um compromisso público; em seguida, vota com uma prova de conhecimento zero Groth16. A prova demonstra que o eleitor pertence ao grupo registrado e inclui um nullifier de uso único que impede votos duplicados, sem permitir associar o voto ao eleitor.

O app oferece votação simples (uma opção por pessoa) e votação ponderada (uma quantidade fixa de pontos distribuída entre as opções). Os eleitores não precisam de carteira nem de ADA, pois o backend cria e envia as transações de voto. Os eventos podem acontecer na Cardano Mainnet ou na testnet Preprod, e o organizador escolhe a rede ao criar o evento. Depois que o período de votação termina, os resultados podem ser consultados on-chain.

O repositório é organizado em módulos para os contratos inteligentes Aiken, um backend NestJS com armazenamento em SQLite e LevelDB, um frontend Next.js, um criador de transações e o módulo de provas ZK.

Recursos principais

  • 01Votação anônima com provas de conhecimento zero Groth16 baseadas em Semaphore
  • 02Nullifiers de uso único impedem votos duplicados
  • 03Modos de votação simples e ponderada
  • 04Os eleitores não precisam de carteira nem de ADA; o backend envia as transações
  • 05Os resultados finais podem ser verificados publicamente na Cardano

Casos de uso

  • Realizar uma votação vinculante e restrita ao grupo, mantendo privadas as escolhas dos participantes
  • Organizar votações de membros de uma entidade que deseja resultados on-chain e à prova de adulteração
  • Experimentar votação anônima on-chain na testnet Preprod sem custos

Início rápido

  1. 1

    Instale todos os workspaces

    npm install
  2. 2

    Configure as variáveis de ambiente (o backend precisa de uma chave Blockfrost e de uma carteira relay com fundos)

    cp src/backend/.env.example src/backend/.env && cp src/frontend/.env.example src/frontend/.env.local
  3. 3

    Inicie o backend na porta 3000

    cd src/backend && npm run start:dev
  4. 4

    Inicie o frontend na porta 3002

    cd src/frontend && npm run dev

Antes de usar

  • Para executar localmente, é necessária uma chave de API Blockfrost e uma carteira relay Preprod com fundos.
  • Na Mainnet, a pessoa organizadora paga cerca de 15 ADA mais as taxas, e é necessário um depósito de 1,3 ADA por eleitor.
  • A instalação pode falhar sem uma chave SSH para o GitHub, a menos que a URL do git seja configurada previamente para usar HTTPS.

Em coleções

Tópicos

#zero-knowledge#cardano#blockchain#voting#privacy#semaphore#groth16#typescript

Perguntas frequentes

O que é ZK-Voting-App?
App de votação privada on-chain na Cardano, em que os eleitores comprovam sua participação com provas de conhecimento zero e mantêm seus votos anônimos. O ZK Voting App é um aplicativo de votação desenvolvido na blockchain Cardano. Um organizador cria um evento, convida participantes por e-mail e publica os contratos de votação on-chain. Cada participante gera uma identidade Semaphore no navegador e registra um compromisso público; em seguida, vota com uma prova de conhecimento zero Groth16. A prova demonstra que o eleitor pertence ao grupo registrado e inclui um nullifier de uso único que impede votos duplicados, sem permitir associar o voto ao eleitor.
ZK-Voting-App é gratuito? Qual é a licença?
ZK-Voting-App é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
ZK-Voting-App ainda é mantido?
Manutenção ativa. O último commit de ZK-Voting-App foi em 4 de nov. de 2026.
Para que posso usar ZK-Voting-App?
Realizar uma votação vinculante e restrita ao grupo, mantendo privadas as escolhas dos participantes Organizar votações de membros de uma entidade que deseja resultados on-chain e à prova de adulteração Experimentar votação anônima on-chain na testnet Preprod sem custos
Como instalar ZK-Voting-App?
Instale todos os workspaces: npm install Configure as variáveis de ambiente (o backend precisa de uma chave Blockfrost e de uma carteira relay com fundos): cp src/backend/.env.example src/backend/.env && cp src/frontend/.env.example src/frontend/.env.local Inicie o backend na porta 3000: cd src/backend && npm run start:dev Inicie o frontend na porta 3002: cd src/frontend && npm run dev
Onde consigo ZK-Voting-App?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/TrustLevel/ZK-Voting-App

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados