AI made authorship illegible
In a 2026 experiment, novelist Vauhini Vara fed her own books to an AI and asked it to write in her voice. Her closest readers — including a friend of three decades — could not reliably distinguish the imitation from her own prose. Stylistic detection alone is finished.
A few months later, the novel Shy Girl was pulled by its publisher amid AI-writing allegations. The author's defense was that maybe a third party did it — unprovable in either direction. There was no signature, no timestamp, no artifact anyone could point at.
Watermarking AI output is one half of the answer. Watermarking human output — at the paragraph level, signed by the author, verifiable offline — is the other half.
By the numbers
Climate-credible provenance
| Approach | Energy / 1M records | CO₂e / 1M records | Offline verify |
|---|---|---|---|
| Bitcoin anchoring | ~1.5 GWh | ~900 t | No |
| Ethereum PoS | ~10 kWh | ~6 kg | No |
| WPS (Merkle log, this spec) | ~5 kWh | ~3 kg | Yes |
¹ Formula: Bitcoin ~1.5 GWh ÷ WPS ~5 kWh ≈ 300,000× — the multiple the table above actually supports (an earlier draft of this page said ~1,000,000×; corrected). Sources: CoinLaw 2026 Bitcoin energy data, Ethereum.org post-Merge estimates, CT-log throughput benchmarks. Conservative midpoints — confidence: medium. Full methodology footnoted in the spec.
What the spec looks like
A manuscript exports alongside a manuscript.provenance.json sidecar. Each
paragraph is a record. Each record is signed by the author's Ed25519 key, hashed into a
Merkle leaf, and bound to the manuscript root by a Worlds audit signature.
{
"spec_version": "1.0.0-phase-b",
"manuscript_id": "01HZX...UUID",
"audit_root": "9f2d...c1a8",
"audit_signature": "5b7e...a40c",
"author_keys": [
{
"fingerprint_hex": "a7fa...5664",
"public_key_hex": "3c9b...77d1"
}
],
"records": [
{
"unit_id": "para-001",
"author_type": "HUMAN-ORIGINAL",
"model": null,
"text_hash_hex": "1c4a...0e9d",
"author_key_fingerprint_hex": "a7fa...5664",
"parent_unit_id": null,
"created_at_iso": "2026-05-09T14:23:11.000Z",
"signature_hex": "51e5...af01",
"merkle_proof": [ /* ... */ ]
}
]
} Full schema, canonical encoding rules, and a 5-record, 24-check conformance fixture are in the published spec.
How to adopt
Verify it yourself
You can verify a Worlds-signed manuscript right now at
worlds.stellarii.studio —
no install required. A standalone reference-verifier repo is coming for anyone who wants to
run it locally or embed it in their own tooling (it's mechanical, ~90 minutes, once
green-lit — the code already lives at tools/verify-cli/ inside the Worlds repo);
here's what adopting it will look like.
-
Install the reference verifier. Node 22+ required for Web Crypto Ed25519.
cd tools/verify-cli npm install -
Round-trip a fresh demo sidecar against the full eight-step verifier pipeline.
npm run verify -- --demo -
Run the 24-check conformance fixture — already published — against your own implementation. Every intermediate byte is pinned.
npm run verify -- --vectors ../../docs/spec/v1/test-vectors.json # Conformance: ✓ CONFORMANT (24/24 checks passed) -
Verify a real manuscript with the audit key pinned out of band.
npm run verify -- <manuscript.txt> <sidecar.provenance.json> --audit-key <hex>
The canonical fixture is already served at /spec/v1/test-vectors.json — five records covering all five author types, byte-pinned end to end.
How WPS relates to existing standards
- vs C2PA: C2PA wraps the whole manuscript with publisher-level metadata. WPS signs each paragraph, by the named human author. The two compose — C2PA on the export, WPS on the body.
- vs Project Origin: BBC / NYT / CBC / Microsoft sign at the article level, by the publisher. WPS signs at the paragraph level, by the author.
- vs Nostr: Nostr signs each event as a single atom — one post, one signature. WPS subdivides the post and signs each paragraph independently, so one document can carry mixed human and AI authorship at paragraph granularity.
- vs SynthID (Google): SynthID watermarks AI output. WPS attests human output. They solve opposite halves of the same problem; both will be needed.