Proof of One: one-person-one-identity polling with encrypted ballots — design and reference code, requesting critical review
Proof of One proposes a privacy‑preserving, one‑person‑one‑identity voting system built on passport‑chip verification and zero‑knowledge proofs, and seeks community critique on its design and threat model.

Introduction
Proof of One is an open‑source protocol that aims to enable one‑person‑one‑identity polling while guaranteeing voter privacy, verifiability, and public recountability. The system combines passport‑chip authentication, enclave‑based face matching, and advanced zero‑knowledge (ZK) cryptography (Groth16 proofs, threshold ElGamal, distributed key generation). The author, Nemo Unus, openly discloses that much of the design and reference implementation was generated with AI assistance and has not yet undergone independent human review. This article outlines the core components, situates the work among existing privacy‑preserving voting projects, and highlights the specific areas where external critique is most valuable.
Core Design Elements
1. Enrolment via Passport Chip
- Hardware verification – A smartphone reads an ICAO 9303 passport chip over NFC.
- Zero‑knowledge proof of authenticity – The chip’s data is proven to be signed by a trusted document signer without revealing the document itself. The circuit implements SHA‑256 and RSA‑2048 (≈577 k constraints).
- Trust list – Signer certificates are drawn from a publicly published list (initially the German master list covering 113 of 186 passport‑issuing countries). The list contains only references; its hash can be recomputed by anyone.
2. Identity Creation
- Face‑to‑chip matching – The live face captured by the phone is compared to the chip photo inside an attested enclave.
- Duplicate detection – An OPRF‑derived document fingerprint and a 1‑to‑N face search prevent multiple enrolments for the same individual.
- Hidden commitment – The enclave signs a commitment that hides the identity leaf; the phone registers this leaf with a ZK proof of credential possession, ensuring the enclave cannot link the leaf to a person.
- Revocation handle – A concealed revocation token enables re‑enrolment without exposing which leaf is being revoked.
3. Voting Process
- Ballot format – One‑hot exponential ElGamal encryption on the Baby Jubjub curve, using a per‑poll threshold public key.
- ZK proof – A Groth16 proof (≈32 k constraints, ~3.5 s on an iPhone 14) validates voter eligibility, non‑revocation, nullifier uniqueness, and ballot well‑formedness. Only the latest ballot per nullifier is counted.
4. Tally and Verification
- Homomorphic aggregation – Encrypted votes are summed directly on‑chain.
- Distributed key generation – A GJKR‑style DKG produces the poll’s threshold key; complaints are resolved from a public transcript.
- Partial decryptions – Trustees publish DLEQ‑proved partial decryptions. The contract checks that the sum of decrypted counts matches the number of distinct voters (bounded by the eligible identity set).
- Challenge window – A 7‑day period allows anyone to contest the tally before key shares are securely deleted.
Relation to Existing Work
Projects such as DAVINCI (Vocdoni) and MACI already provide robust ballot layers with threshold ElGamal, DKG, nullifiers, and revoting. Proof of One’s primary novelty lies in its census construction: a decentralized registry of unique humans derived from passport chips, designed so that the enrolment service cannot link a person to their identity leaf. This contrasts with DAVINCI/MACI, where the poll organiser supplies the voter list. The author has reached out to DAVINCI’s developers to explore integration of the Proof of One census as a plug‑in census source.
Open Questions and Desired Critique
The community is asked to focus on four key issues:
- Unlinkability of enrolment credentials – The enclave learns the hidden revocation handle; does this leak any linkable information?
- Completeness of the ballot circuit and tally checks – Are all necessary integrity checks covered, and are there edge cases where malformed ballots could slip through?
- Threat model framing – The “fundamental limit” claims that authorities could mint fake identities but that doing so would be costly and visible. Is this assessment realistic?
- Certificate trust‑audit process – How should an open‑source project securely obtain, verify, and audit the country signing certificates it relies on?
Additional points of interest include the practicality of a universal Groth16 setup versus ceremony‑based setups, and the handling of commercial passport verifiers that lack the required issuing‑country certificates.
Practical Takeaways
- Transparency first – Publishing the full circuit constraints, test suite (including attack cases), and a reviewer’s guide invites rigorous external audit.
- Modular design – By separating the census layer from the ballot layer, Proof of One can potentially be adopted by existing ZK‑voting frameworks.
- Iterative improvement – The author explicitly welcomes harsh criticism, recognizing that the current prototype is a design stage rather than a production‑ready system.
--- Proof of One represents a bold attempt to fuse biometric identity verification with cutting‑edge ZK cryptography for truly private, auditable polling. Community review of its unlinkability guarantees, circuit completeness, threat assumptions, and certificate management will be essential to move the project from research prototype to trustworthy public infrastructure.
Source
Read original sourceWhy we picked this
Concrete Ethereum research design for on-chain polling, relevant to builders but still unreviewed