Executive Summary
JIL Sovereign's Biometric Proof-of-Humanity (BPoH) system is a protocol-native identity primitive that lets a wallet holder prove they are a unique, living human being without any biometric data - raw or derived - ever leaving their device or becoming visible to JIL, a validator, or any counterparty. Rather than bolting a third-party KYC vendor onto an existing chain, BPoH embeds human verification as a first-class on-chain primitive: a single boolean any contract can check.
Three innovations distinguish this architecture: (1) multi-modal biometric capture and feature extraction that executes entirely on the user's device, so raw biometric data is architecturally incapable of reaching a server; (2) a locally-generated one-way commitment plus a zero-knowledge proof that the underlying biometric has never previously enrolled anywhere on the network, submitted in place of the biometric itself; and (3) a soulbound (non-transferable) ERC-721 Humanity token, minted only after both the uniqueness proof and an independent biometric-commitment check clear a standalone global registry.
Problem Statement
Most blockchain ecosystems are, at the protocol level, wallet-based rather than human-based. A single actor can generate an unbounded number of wallets at near-zero marginal cost, and the network has no native way to distinguish one human controlling one wallet from one human controlling ten thousand. This gap is exploited systematically: bots and Sybil clusters have captured outsized shares of token airdrops and public-goods distributions, governance votes are diluted by holdings fragmented across throwaway wallets, and a large share of on-chain "social" activity is automated rather than human.
Why Existing Solutions Are Insufficient
- Vendor-hosted biometric KYC (Persona, Jumio, Onfido-style): biometric templates are captured and matched on vendor infrastructure. A single vendor breach exposes templates for every enrolled user, and the verification result is scoped to that vendor's own database, not to the chain.
- Hardware-orb proof-of-personhood networks: require dedicated capture hardware and centralize raw iris/biometric data at enrollment kiosks operated by the network or its partners.
- Social-graph webs-of-trust: infer uniqueness from vouching relationships rather than biometric evidence, which is itself gameable at scale by coordinated ring vouching.
- Simple soulbound "verified" badges without a uniqueness proof: can mark a wallet as attested but cannot cryptographically stop the same human from enrolling a second wallet, because there is no global commitment tied to the underlying biometric itself.
Technical Architecture
Multi-Modal On-Device Capture
Biometric modalities are combined so that no single sensor becomes a single point of failure. Feature extraction and hashing occur entirely on-device; nothing below is ever transmitted in raw form.
| Modality | Method | False-Accept Rate | Capture Time |
|---|---|---|---|
| 3D Face Recognition | Depth-map scan via structured-light / TrueDepth-class sensor | ~1 in 1,000,000 | ~30s |
| Voice Print | Vocal-tract resonance, formant structure, deepfake detection | ~1 in 100,000 | ~10s |
| Behavioral Biometrics | Typing rhythm, touchscreen pressure, gesture dynamics | ~1 in 50,000 | ~2 min |
| Liveness Detection | Randomized challenge-response, skin micro-texture analysis | Supplementary gate | ~5s |
Enrollment Pipeline
- Device sensors collect the enabled modalities; on-device ML models extract feature vectors.
- An irreversible one-way hash (
biometricHash) is generated locally from the extracted features. - A zero-knowledge proof is constructed on-device attesting "this hash belongs to a unique human who has not previously enrolled" (
uniquenessProof), plus a separate liveness attestation (livenessProof). - Only the hash, the two proof digests, and a 0-100 confidence score are submitted on-chain - never the underlying biometric.
Smart Contract Layer
| Contract | Role |
|---|---|
BiometricHumanity | Soulbound ERC-721 enrollment and proof storage; stores the HumanityProof struct (biometricHash, uniquenessProof, livenessProof, enrollmentTime, humanityScore, lastVerification, verified, revoked) per wallet. |
UniquenessRegistry | Standalone contract, deliberately separated from BiometricHumanity so the deduplication set survives contract upgrades; tracks consumedProofs and enrolledBiometrics as two independent dedup keys. |
HumanityGate | Importable modifier library; a single requireHumanity(minScore) modifier gates any downstream contract function behind a minimum verified-human confidence score. |
On enrollment, the contract verifies an ECDSA signature from an authorized VERIFIER_ROLE attestor over a digest binding the biometric hash, uniqueness proof, humanity score, block.chainid, and the contract's own address - preventing the signature from being replayed against a different contract or a different chain. Only after signature verification does the contract call the registry's consumeProof (reverts if the ZK proof digest was already used) and enrollBiometric (reverts if the biometric hash itself was already enrolled) - two independent, atomic dedup checks - before minting the token.
Attack Resistance & Reverification
| Attack | Technique | Defense |
|---|---|---|
| Deepfake video | AI-generated face video | 3D depth requirement; unpredictable liveness challenges; skin micro-texture analysis |
| Photo replay | High-resolution photo to camera | No blink/head-movement/depth signal; behavioral biometrics absent |
| Synthetic voice | TTS or voice cloning | Vocal-tract mismatch; micro-timing absent; spectral synthesis detection |
| 3D mask | Silicone or 3D-printed mask | No pores/blood-flow signal; sub-dermal checks; behavioral mismatch |
| Duplicate enrollment | Same person, new wallet | Hash collision rejected by UniquenessRegistry |
| NFT transfer | Buy or steal a Humanity token | Soulbound: transfer function reverts unconditionally |
A needsReverification() view compares block.timestamp against lastVerification + reverificationPeriod (default 365 days; governance may only raise the floor to at least 30 days). Revocation, exercised by a governance-held REVOKER_ROLE, checks the revoked flag before the verified flag specifically so a revoked wallet remains distinguishable from a never-enrolled one rather than collapsing to the same error state.
Prior Art Differentiation
| Approach | Biometric leaves device? | Dedicated hardware required? | Cryptographic uniqueness proof? | Non-transferable token? |
|---|---|---|---|---|
| Vendor-hosted KYC (Persona/Jumio-style) | Yes | No | No | No |
| Hardware-orb proof-of-personhood | Yes, to enrollment kiosk | Yes | Partial | Varies |
| Social-graph webs-of-trust | N/A (no biometric) | No | No | Varies |
| Generic soulbound "verified" badge | N/A | No | No | Yes |
| JIL BPoH | No | No | Yes | Yes |