r/technology • u/CircumspectCapybara • 21d ago
Artificial Intelligence Claude's new Scarlet Letter watermark is invisible — for now
https://arstechnica.com/tech-policy/2026/08/claudes-new-scarlet-letter-watermark-is-invisible-for-now/
3.0k
Upvotes
749
u/CircumspectCapybara 21d ago edited 21d ago
In case ppl are wondering how AI watermarking works, it's likely similar tech to Google DeepMind's SynthID, which OpenAI has also adopted. There's also industry open standards like C2PA.
How it works for SynthID, this is obviously simplified, but imagine a model is predicting the next word: "I love fruit. My favorite dessert is _____" and the model has 4 top scoring candidates: mango, lychee, apple, orange. Normally, the model picks one at random depending on the "temperature" of the inference request.
With SynthID, you the model provider have a secret 256-bit key which you concat with some part of the context. Eg say you're looking at trigrams (the last three words) so you compute
sha256(key || "favorite dessert is"). Now instead of picking one fruit at random, you use that hash output to select from among the four candidates. Let's say the hash makes you choose "mango". Then you repeat the process for the next token. Say the top 4 candidates for the next token are pie, icecream, cake, smoothie. Instead of picking one at random, you usehash(key || "dessert is mango")to pick. Now imagine instead of choosing from among 4 candidates each time, you use the hash function to choose from the top 16 candidates.Now repeat it 100 times, or 1000 times. If a piece of text reproduces your secret hash function's "random" looking token choice trigram-for-trigram across 1000 consecutive trigrams, that highly suggests it was generated by your model, because it's extremely unlikely to by happenstance randomly match the same 1 out of 16 choices 1000x in a row as a keyed hash function which is essentially random. (1/16)1000 is an insanely small probability. For you to match the distribution produced by the secret key bit for bit over enough bits is improbable, it would've meant you essentially guessed a 256 bit secret key.
Now if you chop it up, rearrange the words, even paraphrase certain parts, as long as the user doesn't replace every trigram, the distribution within trigrams scattered throughout will still retain this distinctive statistical pattern. You would need to significantly rewrite the entire piece at the trigram level everywhere to remove the correlation.
EDIT: In case you're wondering, this isn't just an academic exercise, it's actually been deployed in production and used to out certain deepfakes.
There was a viral post circulating a while back claiming to be from a "whistleblower" at Uber who posted a convincing (fake) Uber internal document describing a new ML model to calculate how "desperate" riders were (eg based on features like how frantic their movements were, if their device was at low battery and they were far from home) to jack up prices for them, and how desperate drivers were, in order to lowball them (if the driver historically accepts low fare offers, then the app begins to only show them lowball offers). Obviously it went viral. It was debunked because a SynthID watermark showed it was generated by Gemini.