Hi everyone,
I am sharing an empirical research paper and open-source implementation for Sybil Wedge, a client-side zero-knowledge proof-of-personhood construction designed to achieve one-human-one-action rate limiting without biometric databases, hardware orbs, or centralized identity registries.
Core Architecture & Primitives
- Attester-blinded Secret Commitments: Users enroll via an identity attester (e.g., OIDC or credentials) without the attester ever learning the secret key or seeing generated nullifiers.
- RLN-style Shamir Nullifiers: Double-actions within the same rate-limit window reveal two points on a line, automatically recovering the secret and slashing the membership stake.
- Arity-8 Merkle Tree: Reduces tree depth from 20 to 9, bringing constraints down to 4,309 over BN254.
- Decoupled Epochs: Decouples
epoch_action(rate-limit window) fromepoch_tree(Merkle cadence) to maintain constant state transitions. - Dual Revocation: Implements both in-circuit non-membership checks (+R constraints) and bulk incremental tombstone rebuilds.
Empirical Benchmarks on Physical Hardware
Rather than theoretical estimates, we benchmarked on entry-level ARM64 hardware (Samsung Galaxy A12, Helio P35, 8x Cortex-A53, 3,751 MB RAM):
- Phase-2 Proving Latency: 477 ms (native Rapidsnark) / ~3,300 ms (C++/WASM).
- Peak RAM (RSS): 361 MB (9.6% of device RAM).
- Formal Verification: 6 deployed circuits verified as properly constrained via Picus (Veridise SMT solver), zero findings on circomspect entrypoints, and 24/24 pass rate on adversarial witness tests.
The paper also documents the four optimization paths that failed under empirical measurement (including compressed binary trees and full client-side tree rebuilds) to save other researchers time.
Resources & Open Source
-
Full 22-Page Paper (PDF):
proof-of-personhood-without-a-registry.pdf (608.4 KB)
-
GitHub Repository (Circom circuits, tests, benchmarks): GitHub - rehanmalik2008/Proof-of-Personhood · GitHub
I would appreciate feedback, critique on the security assumptions, and discussion on potential standardization or integration!