Manav.id
Comparison · 4 min read

Why CAPTCHA is finished as a human test

Why CAPTCHA is finished as a human test

The acronym contains the claim: a test that tells computers and humans apart. The gap it depended on has closed, and in several categories it has inverted.

Is CAPTCHA finished as a human test?

As a test of humanity, yes. The premise was a task easy for people and hard for machines, and vision models now beat humans on both accuracy and speed. What remains is a rate limiter and a cost imposition, which is a real but much smaller thing.

Key takeaways
  • Machine accuracy on visual challenges now exceeds typical human accuracy, which inverts the test's premise.
  • A solving service costs a fraction of a cent per challenge, so even an unsolved CAPTCHA is only a small toll.
  • The remaining function is friction, which is a rate limit with an accessibility cost attached.

The premise, and why it held

The original premiseEasy for humansHard for machinesCheap to deployA test of humanityWhat is leftHard for many humansEasy for modelsStill cheapA rate limiter with an accessibility costvs

A CAPTCHA works if there is a task where human performance substantially exceeds machine performance. Distorted text and object identification were such tasks for a while.

Both halves of that gap have moved. Machine performance improved dramatically; human performance on progressively harder challenges got worse, because the challenges were made harder to stay ahead of the machines.

Challenge typeHuman accuracyMachine accuracy
Distorted textModerate — degrades as distortion increasesHigh
Object selection in imagesGood, but slow and error-prone at the edgesHigh
Audio alternativePoor — widely reported as very difficultHigh
Logic or arithmetic puzzlesGoodVery high

The audio row deserves a moment. It exists for accessibility and is the least usable option for the people who depend on it, while being the easiest for a machine.

The economics, which settle it

Even where a challenge resists automated solving, solving services exist. Rates are a fraction of a cent per challenge.

# Attacker's arithmetic
  Target: 100,000 account creations
  CAPTCHA solving cost: ~$0.001–$0.003 per solve
  Total:  $100–$300

# Defender's arithmetic
  100,000 real users each spend ~10 seconds
  Total: ~280 hours of user time
  Plus: users who abandon after a failed attempt

The defender pays more than the attacker, in a currency they care about more. That is an unusual property for a security control.

The invisible variants

Modern implementations rarely show a puzzle. They score the request from behavioural and environmental signals and challenge only when the score is low.

This is better for users and it is no longer a CAPTCHA — it is behavioural detection with a puzzle as the fallback. Its efficacy depends entirely on the scoring, which faces the same signal erosion as all fingerprinting.

What CAPTCHA still does

One thing, honestly: it imposes a cost per attempt. That is a rate limit.

If a rate limit is what you need, there are cheaper ways to impose one that do not exclude users with disabilities.

The accessibility cost is not a footnote

Visual challenges exclude users with visual impairments. Audio alternatives are reportedly harder than the visual ones. Puzzles with time limits exclude users with motor or cognitive differences.

A control that reliably excludes a category of legitimate users while reliably failing to exclude motivated attackers has an unusually poor cost structure, and it persists mostly because it is familiar.

What to use instead, by surface

SurfaceAlternative
Account creationRate limiting by network and identifier, plus verification of a contact channel
LoginPhishing-resistant authentication; the account is the identity
Consequential action by an authenticated userA signature bound to the action
Public form with no accountRate limiting and server-side validation; accept that some abuse gets through
Content scrapingTerms, rate limits and a legitimate access path rather than an arms race

The fourth row is where CAPTCHA had its best case and where the honest answer is that no control is strong. Accepting a level of abuse and limiting its impact is usually better than excluding users to prevent it.

A worked example: the economics

Cost per solve, roughly
SolverCostSpeed
Human solving farmFractions of a centSeconds
Vision modelLower still, and fallingSub-second
Legitimate userSeveral seconds of attentionSlowest of the three

Once the attacker's cost per solve is below the legitimate user's cost in attention, the test is taxing the wrong party. That inversion happened some time ago and is not reversing.

Objections and honest limits

“Invisible variants score behaviour instead.” They score signals — mouse movement, timing, device consistency — which is behavioural detection under a different name, with the same threshold problem and the same false-positive cost for people using assistive technology.

“It still stops unsophisticated bots.” True, and that is the honest remaining value: a rate limiter and a cost imposition against volume. It is not a humanity test, and it should not be relied on as one.

Choosing a replacement by surface

  1. Decide what you actually need. Rate limiting and humanity assurance are different problems.
  2. For volume abuse, use rate limits and cost. Directly, rather than through a puzzle.
  3. For account actions, use a signed assertion. A credential, not an inference.
  4. For consequential actions, gate the effect. Signature over what will happen.
  5. Audit the accessibility cost you are removing. It is larger than most teams assume.

Terms used here

CAPTCHA
A challenge intended to distinguish humans from automation by exploiting a capability gap that has closed.
Invisible CAPTCHA
Behavioural scoring presented as a frictionless test, with the same threshold and false-positive problems.
Cost imposition
Making abuse expensive rather than impossible — the honest remaining function.

Frequently asked questions

Have machines really surpassed humans? On common visual challenge types, yes — and human performance degraded as challenges were made harder to stay ahead of machines.

What about invisible CAPTCHA? That is behavioural scoring with a puzzle fallback. Its efficacy depends on signals that are eroding for the same reasons all fingerprinting is.

Does CAPTCHA do anything useful? It imposes a per-attempt cost, which is a rate limit. There are cheaper ways to rate limit that do not exclude users with disabilities.

What replaces it on a public form with no account? Rate limiting and server-side validation, accepting that some abuse gets through. No control is strong there, and excluding users to prevent it is usually the worse trade.

Does CAPTCHA still do anything? It imposes cost and limits rate against unsophisticated volume. That is useful and much smaller than a humanity test.

Are invisible variants better? They move the problem to behavioural scoring, which cannot separate an unusual human from a careful bot.

What is the accessibility cost? Substantial, and borne by the legitimate users the test was supposed to let through.

Where this fits in Manav

Manav replaces the inference with an assertion: a hardware signature from a person, verifiable offline, with no puzzle and no score.

See the alternative →

Sources and further reading