This repo contains the Halo2 implementation for the Anon-Aadhaar protocol.
At this point, the main components are :-
- Verification of an RSA signature of a SHA-256 hashed message.
- Extraction of fields from signed data. If reveal true: age > 18, gender, state, pincode.
- Computing the Nullifier from the Poseidon Hash function.
- Conversion of IST timestamp to UTC UNIX timestamp.
- Apply constraints on the signal hash.
How to build and run the repo:
- cargo update -p [email protected] --precise 2.2.0
- cargo build
- cargo test
Benchmarks:
Part of the Circuit | Proving Time | Verification Time |
---|---|---|
RSA-SHA256 | 14.442124258s | 11.461932341s |
Nullifier | 322.659513ms | 96.948µs |
Conditional Secrets | 17.916018ms | 307.496281ms |
Timestamp | 9.821774ms | 1.990614ms |
Signal | 12.089368ms | 78.350583ms |