cd /news/artificial-intelligence/i-built-a-zero-knowledge-protocol-to… · home topics artificial-intelligence article
[ARTICLE · art-79776] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=· neutral

I Built a Zero-Knowledge Protocol to Prove a Human Typed This (Not a Bot) — Help Me Try to Break It

A developer has built PoHI (Proof of Human Intent), a zero-knowledge protocol that distinguishes human typing from bot-generated text by measuring physical typing rhythm — dwell time, flight time, pause skew, and error correction patterns — without revealing raw keystroke data. The protocol uses a zk-SNARK to prove a behavioral score exceeds a threshold, and the developer is inviting the public to test and try to break it at pohi-protocol-poc.vercel.app.

read2 min views1 publishedJul 30, 2026

AI-generated text is no longer distinguishable from human text. That's not a hot

take, it's a measurable fact at this point, and it quietly breaks a lot of the

trust assumptions the internet runs on — messaging, marketplaces, escrow, forums.

If you can no longer tell what was written by a bot, the obvious next question is: can you tell how it was written?

That's the premise behind PoHI (Proof of Human Intent), a protocol I've been

building on my own: instead of analyzing text content, it measures the physical

rhythm of typing — dwell time, flight time between keys, the skew of your s,

how you correct mistakes — and proves, via a zero-knowledge SNARK, that the

resulting score clears a threshold, without ever revealing the raw keystroke data.

@pohi-protocol/core-math — the reference math engine implementing the behavioral equations (skewness, cognitive-latency ratio, error-recalibration variance). 74 unit tests.circuits/

— a Circom circuit compiling to Groth16 over BN254, ~12,500 constraints, with a real multi-party trusted-setup ceremony tool. 21 tests checking it agrees numerically with the reference engine packages/sdk-web

— the browser-side capture SDK.experiments/

— an adversarial evaluation harness with six attacker models,

from "constant-delay macro" up to "an attacker with full knowledge of the
scoring function trying to fake the rhythm."Everything is open: [https://github.com/ProjectOne2020/pohi-protocol-poc](https://github.com/ProjectOne2020/pohi-protocol-poc)

I'm not here to tell you this is unbreakable. It probably isn't, at least not yet.

A zk-SNARK proves you know a witness satisfying the relation — it does not

prove that witness came from an actual human hand. That's a real, documented gap

(I wrote it up in the threat model instead of hiding it — see

docs/THREAT_MODEL.md §5), To test that, I need real human typing data — which is the actual ask here.

👉 https://pohi-protocol-poc.vercel.app You type a few short prompts, that's it. Available in English and Spanish. What

gets recorded is only keystroke press/release timestamps in milliseconds and

whether a key was Backspace — never the text itself. That's not just a privacy

promise: the database schema itself has a constraint that rejects any record

containing character data, so it holds even if someone tampers with the client.

You can check that directly in

[ experiments/schema.sql](https://github.com/ProjectOne2020/pohi-protocol-poc/blob/main/experiments/schema.sql).

If you're more interested in poking at the code than typing, I'd take that too —

issues, PRs, "your fixed-point division is still wrong here" comments, all

welcome. Especially if you can break the scoring.

Repo: [https://github.com/ProjectOne2020/pohi-protocol-poc](https://github.com/ProjectOne2020/pohi-protocol-poc)

LinkedIn: [https://www.linkedin.com/in/alejandro-guti%C3%A9rrez-9a0318107/](https://www.linkedin.com/in/alejandro-guti%C3%A9rrez-9a0318107/)
── more in #artificial-intelligence 4 stories · sorted by recency
── more on @pohi 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-built-a-zero-knowl…] indexed:0 read:2min 2026-07-30 ·