v154 · private verification tokens

The friction it replaces

Do the puzzle. The page times you, and then times the token check for comparison. The seconds are the smaller half of the argument — the larger half is that the puzzle is asked of the people who look least ordinary, and the check is asked of nobody.

A challenge, of the usual kind

Press start, then select every tile containing the letter shown.

Not started.

This is a deliberately easy puzzle, and it still takes seconds. A real one is harder on purpose, is often wrong about you, and comes back next time — the cost is not one puzzle, it is the expectation of puzzles.

The check, for comparison

Not run.

The check is a real document.hasPrivateToken call, timed the same way the puzzle was. It answers false here, because this browser holds no tokens — so what is being timed is the cost of asking, not the cost of a successful redemption, and the page will not pretend otherwise.

Who pays

The same visitor, seen two ways
visitorlooks automated?under a challengeunder a token

This table is an argument, not a measurement, and is marked as one. The point it makes is the one the proposal makes: heuristics that look for ordinariness impose their cost on people who are not ordinary, and a token that says "somebody already checked" removes the need to check again.

see also