// HOW IT WORKS

From challenge
to on-chain proof.

Capture, feature extraction, and proof generation all run on your device. What reaches Solana is a zero-knowledge proof and a commitment, never a raw recording.

// VERIFICATION FLOW

12 seconds. The rest is automatic.

Speak a phrase, trace a curve. Feature extraction, proof generation, and on-chain verification run automatically.

01—Challenge

A random word phrase and Lissajous curve generated fresh for each session. No two sessions share the same challenge.

Each session generates a unique 5-word phrase from a curated English vocabulary and a unique Lissajous curve from random mathematical parameters. The user speaks the phrase while tracing the curve for 12 seconds. The challenge elicits natural behavioral data (voice prosody, hand tremor, touch pressure) rather than testing memory or speed.

02—Capture

Three sensor streams record in parallel: voice, touch, and motion. 12 seconds of simultaneous behavioral data.

The Pulse SDK accesses the device microphone, accelerometer, gyroscope, and touch digitizer. All sensors record in parallel for 12 seconds. Raw motion and touch recordings stay in device memory and are destroyed after feature extraction. Derived statistical summaries leave the device for validation, along with the spoken-phrase audio, which the server transcribes and discards immediately. On desktop, motion sensors are unavailable. Mouse pointer dynamics provide equivalent kinematic features.

03—Extract + Score

308 statistical features across voice, motion, and touch. Anatomical signal (formants, MFCCs, voice quality) alongside anti-synthesis traces (jitter, shimmer, HNR).

Audio contributes 170 features: F0 statistics, jitter, shimmer, harmonics-to-noise ratio, MFCCs, LPC coefficients, formant trajectories, and voice quality. Motion contributes 81: jerk, jounce, FFT band energies, tremor peak in the 4-12 Hz physiological band, and cross-axis IMU covariance. Touch contributes 57: velocity, acceleration, pressure derivatives, curvature, and path efficiency. Per-feature entropy separates live behavior from generated data. Human tremor fluctuates over time; synthetic signal holds steady. On desktop, mouse pointer dynamics replace IMU data with the same kinematic feature shape.

04—Hash

SimHash projects features into a 256-bit fingerprint. Same-user fingerprints cluster; imposters diverge.

The expanded feature vector (including entropy and jitter metrics) is passed through SimHash using random hyperplane projections. The output is a Temporal Fingerprint. Two fingerprints from the same person have small Hamming distance. The entropy features mean synthetic data produces a different fingerprint than real behavioral data.

05—Commit

Poseidon(fingerprint || salt) produces the TBH commitment. The fingerprint and salt stay on-device.

A large cryptographically-secure salt is generated. The Poseidon hash function (chosen for ZK-circuit efficiency over BN254 field elements) takes the fingerprint concatenated with the salt to produce H_TBH. The commitment and ZK proof are transmitted. The fingerprint and salt remain on-device, encrypted.

06—Prove

Groth16 ZK proof: distance is within the valid range. Not too similar (replay), not too different (imposter).

The proof verifies three statements: both commitments are valid Poseidon hashes of real fingerprints, the Hamming distance falls below the maximum threshold (natural human variation), and the distance exceeds a minimum threshold (blocks perfect replay where a bot submits identical data). The verifier learns nothing about the actual fingerprints.

07—Verify

Proof verified on Solana. Anchor updated. Progressive Trust Score recalculated from verification history.

The statistical feature summary is validated server-side by proprietary models that detect synthetic data, then the ZK proof is verified on-chain. Both must pass. The server sees derived statistics (means, variances, spectral coefficients) plus the spoken-phrase audio it transcribes and discards. It never sees raw motion or touch, and it stores no raw recordings. On success, the Anchor stores the verification timestamp in a rolling history. Trust Score recalculates using recency weighting and cadence analysis.

// PROTOCOL COMPONENTS

Five layers, one proof.

// FIGURE 01
01

Pulse SDK

Client-side capture and proving

A TypeScript library that runs on the user's phone or browser. It captures sensor data, extracts features, generates the TBH commitment, and produces the ZK proof. Raw biometric data is discarded after feature extraction—only derived statistical features and the proof are retained.

  • Browser and React Native support
  • Audio, IMU, and touch capture in parallel
  • On-device Groth16 proof generation
  • Wallet-adapter integration for one-call verification
// FIGURE 02
02

ZK Circuit

Hamming distance verification

A Groth16 circuit that proves two Poseidon-committed TBH values are within Hamming distance t of each other. The circuit runs at proving time on the user's device. The verifier learns only that the threshold check passed.

  • Groth16 over BN254 curve
  • Poseidon hash for ZK efficiency
  • Under 200K compute units on-chain
  • Proof generation targets under 5 seconds on mobile
// FIGURE 03
03

On-Chain Programs

Three Solana programs

The entros-verifier program checks ZK proofs. The entros-anchor program manages non-transferable identity tokens (SPL Token-2022). The entros-registry tracks Trust Scores, validator staking, and protocol configuration.

  • Anchor framework with full constraint validation
  • Non-transferable token via Token-2022 extension
  • Trust Score from verification count and age
  • PDA-derived identity (one per wallet)
// FIGURE 04
04

Executor Node

Off-chain relay and challenge service

A Rust service that generates signed challenges and issues SAS attestations against verified wallets. The public protocol layer—open source for trust and auditability.

  • Server-generated signed challenges (anti-bot)
  • SAS attestation issuance
  • Per-integrator API-key rate limiting
  • Configurable CORS and per-IP throttles
// FIGURE 05
05

Validation Service

Proprietary defense layer

A private Rust crate that analyzes the 308-dimensional statistical feature summary for synthetic artifacts, cross-modality inconsistencies, and Sybil patterns. Protocol behavior is open and auditable in full. Detection logic is not—published thresholds and model internals are calibration data for an attacker.

  • TTS and synthetic data detection
  • Cross-wallet fingerprint registry (Sybil detection)
  • Cross-modality behavioral coupling enforcement
  • Adaptive thresholds with zero information leakage
// PRIVACY MODEL

Privacy by architecture.

// DATA FLOW
  • On-device processing

    Sensor capture, feature extraction, hashing, and proof generation run on the user's device. Raw motion and touch recordings stay in device memory and are destroyed once features are computed. The only recording that leaves is the spoken phrase, transcribed on arrival and discarded.

  • No raw biometric storage

    Raw audio, motion, and touch are never persisted after the Temporal Fingerprint is computed. No server-side database holds voice samples or movement traces. The fingerprint is cached locally for fast re-verification and held on chain in a wallet-keyed AES-256-GCM blob, recoverable from any device by the wallet that wrote it and opaque to everyone else. That blob holds a one-way hash of the behavioral summary and a random salt, nothing more.

  • Minimal data transmission

    The Pulse SDK transmits a Groth16 proof, a Poseidon commitment, a 308-feature statistical summary, a coarse outline of the traced curve for the liveness check, and the spoken phrase audio used for transcription. Nothing else.

  • No identity mapping

    The protocol proves 'you are human,' not 'you are a specific person.' The TBH is pseudonymous. It does not link to a name, email, or social account.

  • One-way commitment

    Poseidon(fingerprint || salt) is computationally irreversible. The commitment cannot be decoded back into the original behavioral fingerprint.

  • GDPR and EU AI Act aligned

    Behavioral verification (not identification) is designed to minimize regulatory exposure under the EU AI Act. Data minimization is enforced by architecture, not policy.

// SECURITY MODEL

How Entros resists bots.

Synthetic input is rejected server-side before it ever reaches the chain. Detection decides who gets an Anchor, and the checks that make that call stay private.

01

Minimum Distance Constraint

The ZK circuit enforces a minimum Hamming distance between consecutive fingerprints. Perfect replay is rejected at the proof level. A bot submitting identical synthetic data twice gets blocked before reaching the chain.

02

Server-Side Feature Validation

The 308-dimensional statistical feature summary is validated by proprietary server-side models before the on-chain proof is accepted. These models detect synthetic speech artifacts, unnatural jitter patterns, and cross-modality inconsistencies. The validation logic is private—the attacker can see that checks happen but not how they work.

03

Progressive Trust Score

Trust Score rewards consistency over time, not volume. 100 verifications in one day scores lower than weekly verifications over 3 months. Recency weighting and cadence analysis mean a score reflects sustained presence, not burst activity.

04

Per-Session Randomness

Each verification generates a unique random phrase and Lissajous curve. No two sessions share the same challenge. The challenge elicits involuntary behavioral patterns (voice prosody, hand tremor, touch pressure) that are harder to synthesize than the words themselves.

05

Multi-Modal Capture

Three independent sensor streams record in parallel: microphone, pointer/touch digitizer, and device motion (where available). A bot needs to fake realistic voice, tremor, and touch pressure simultaneously. Spoofing one modality is feasible. Spoofing all three with consistent behavioral entropy is a substantially harder problem.

06

Cross-Wallet Fingerprint Registry

The server maintains a registry of all verified behavioral fingerprints. New verifications are compared against existing entries. Sybil attacks—where one actor creates many identities—produce clustered fingerprints that the registry detects and rejects.

07

Economic Disincentives

Verification costs SOL, and each wallet carries funding and account rent, so holding many Anchors carries continuing cost. This is a disincentive, not the gate. What decides whether a capture becomes an Anchor is the validator, and synthetic input never reaches the transaction.

// VERIFICATION FLOW

On-chain identity, behaviorally proven.

Traditional captcha answers “is this session human?” Entros answers a harder question: “is this the same human, and how long have they been proving it?” The protocol provides the signal. The integrator sets the threshold.

// WALLET FLOW

Wallet-connected verification

Connect a Solana wallet. Your Entros Anchor (non-transferable Token-2022) is tied to that wallet. The behavioral fingerprint stays encrypted with AES-256-GCM in a wallet-keyed on-chain blob—only your wallet's signature unlocks it, on any browser or device. The blob holds a one-way hash, not raw biometrics. Commitment and Trust Score live on chain, visible to every integrator. This is the persistent, portable identity. Each wallet requires funded SOL and account rent, so an Anchor is not free to hold.

// RESEARCH VALIDATION

Why multi-modal behavioral verification works.

Single-modality detection is losing to modern AI. Entros's multi-modal approach is the architecture recent research converges on for proof of personhood.

Single-modality detection is failing

SONAR Benchmark, ACM 2024-2025

OpenAI's TTS is detected only 78% of the time by the best available classifier. Models trained on older datasets lose up to 43% performance against newer TTS systems.

Multi-modal fusion is the defense

BioMoTouch, arXiv 2025

Touch and motion sensor fusion from commodity devices achieves 99.71% accuracy with 0.27% equal error rate. Mimicry attacks succeed less than 1% of the time. Replicating physiological characteristics across several modalities, in temporally consistent patterns, is a substantially harder problem.

Voice-gesture coupling is biomechanical

Pouw et al., Royal Society Proceedings B, 2025

Hand movement and voice prosody couple through shared respiratory and motor control systems. The coupling is involuntary and biomechanical. A bot using TTS and a movement simulator produces two independent signals that lack this natural coupling.

Physics-informed detection still works

VoiceRadar, NDSS 2025

Micro-frequency oscillations derived from vocal fold physics achieve 0.45% equal error rate against modern TTS. TTS models the statistical distribution of speech features but not the underlying physics of speech production.

Modern TTS produces artifacts in both directions

Warren et al., "Pitch Imperfect", 2025

Neural vocoders can produce acoustic perturbation values higher than human baselines, not just lower. This overturns the assumption that synthetic speech is "too perfect." Detection must account for artifacts in both directions.

Touch-IMU shockwave is a liveness signal

Device physics, BioMoTouch 2025

Physical touch produces a measurable hardware response in a device's motion sensors. A signal generated without genuine physical interaction cannot reproduce it.

// CORE ADVANTAGE

Entros captures voice, movement, and touch simultaneously and verifies their temporal correlation. Spoofing one modality in isolation is feasible. Spoofing all three, with behavioral characteristics that stay consistent across modalities, is a substantially harder problem. Trust Score then asks for that consistency to hold across sessions over weeks.