Proof of Personhood by Letters
(Approx. 4 min read)
Recently you’ve probably seen an uptick in Cloudflare or reCAPCHA-style verification screens due to the massive influx of scrapers and AI agents all over the Internet. This is a never-ending battle from a technical standpoint (websites are mostly losing this battle), but it’s actually only half of the problem.
There are several concerning trends1 regarding the future of human interaction online:
- The cost of using some LLM to churn out human-sounding text is approaching zero. Social media platforms have been actively trying to make LLM integrations easier to use!
- Easier methods to disambiguate bots and humans based on style alone are failing due to increasingly sophisticated style prompting and better memory storage between LLM runs (bots now can maintain elaborate personas over time).
- More people are starting to talk like LLMs due to excessive exposure to their writing, which only further compounds the delineation problem.
As I see it, there’s an urgent need to find a new way to tell human from machine so that we can create and maintain useful online spaces without accepting a new robotic Eternal September, since we are fast approaching a time where they will be impossible to tell apart by their works alone. So, then: as site operators, how do we distinguish AI users from actual human users? I’m talking about users who have accounts and interact with a site by posting/commenting, not visitors (removing bot nuisances is best done with tools like Cloudflare Turnstile or Anubis).
There are, in theory, many ways one could go about doing this. I have a more radical proposal: what if we all write letters to do Proof of Personhood?
No, that isn’t a joke. The procedure I have in mind is something like this:
- You log on to the website and generate a one-time code of some kind.
- You write this down, by hand, on a sheet of paper.
- You send the sheet of paper in an envelope, without a return address, to the website owner’s PO box or business address.
- The website owner opens the letter, sees you sent it, enters the code on their end to verify you, and destroys the letter in some secure way (light it on fire/shred).
The exact cryptosystem is a bikesheddable matter (one-time pad nonces is my personal preference here, but I’m no cryptography expert); the point is that this is actually a relatively expensive thing to fake at scale, and it gives you many nice benefits:
- Depending on the type of cryptosystem you have (maybe something like sending a one-time pad nonce), this system can fail-safe; if the letter is intercepted by a third-party, there’s not very much they can do with it since it contains pure cypertext / random code. Now that third party knows you were sending cyphertext to the website operator (this can be mitigated with a mail proxy), but its contents are plausibly deniable.
- Basically anyone anywhere on earth can get postage, letters, and stamps from their local post office. If you can afford a computer, you can probably afford to send a letter as well.
- While not necessary for this system, if you factor in the user’s IP address, you can have another strong and private deterrent against fraudsters by checking the country the letter originates from. Some combinations (like a Liechtensteiner IP sending mail with Swiss postage) are coherent, but others are obviously fraud (like getting South African mail from a Brazilian IP), since it’s difficult to send letters from countries you don’t reside in.
- Mail privacy is harder to break than most other communication methods, at least legally. Most jurisdictions have some type of law protecting the transfer of mail while none exists for more modern Internet-based communication forms. Even in jurisdictions where mail privacy is nonexistent, you can greatly help with plausible deniability by simply using a mail proxy and a fake message to explain what the cyphertext is doing there.
- It’s hard to bot. Printing the cyphertext isn’t allowed, so you need to manually copy it by hand to a sheet of paper. Again, fine for a human who takes this seriously, but devastating if you want to summon thousands of accounts out of nowhere.
The biggest disadvantage is speed. It’s called “snail mail” for a reason. Also, it doesn’t scale well, but that can be fixed by slowly swapping to a web-of-trust like system, the specifics of which are beyond the scope of this article2.
This could be a good bootstrapping method for a humans-only network that doesn’t rely on using something like Cloudflare’s Cryptographic Attestation of Personhood or government ID verification, both of which are heavyweight, invasive, and not accessible to all.