A set of custom circuits writted in Gnark that are required to support anonymous voting on Vocdoni.
- Hash Poseidon (source code).
- SMT Verifier port from @iden3/circomlib (source code).
- Arbo (by @arnaucube) proof checker from @vocdoni/arbo (source code)
- This is also compatible with the circomlib SMT Verifier.
- Homomorphic Addition (using point reduction of TwistedEdwards curve to transform circom BabyJubJub points into Gnark BabyJubJub points) (source code) (helpers source code)
- Address derivation from ECDSA public key (hash the key coords with Keccak256 and take the last 20 bytes) (source code).
- Some other helper functions that are useful in previous primitives (source code)
This repository provides proof-of-concept implementations. These implementations are for demonstration purposes only. These circuits are not audited, and this is not intended to be used as a library for production-grade applications.