Biblioteca JavaScript e WebAssembly para gerar e verificar provas zkSNARK com Groth16, PLONK e FFLONK, usada com circuitos circom.
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
Instale todos os workspaces
npm install - 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
Inicie o backend na porta 3000
cd src/backend && npm run start:dev - 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
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
Sistema operacional descentralizado e software de nós que executam a rede Aleo para aplicações de conhecimento zero.
Uma máquina virtual de conhecimento zero que gera provas de execução correta para programas escritos em Rust ou em outras linguagens compiladas com LLVM.
Framework TypeScript para criar circuitos de conhecimento zero e zkApps, com geração e verificação de provas no navegador, no Node ou para o Mina Protocol.
Pastebin com criptografia de ponta a ponta e autodestruição: as notas são criptografadas no navegador com AES-256-GCM e desaparecem após uma leitura ou 24 horas.
Compartilhamento self-hosted e com conhecimento zero de senhas de uso único, chaves de API, textos e arquivos criptografados por links autodestrutivos.