Watermarking — SynthID, Stable Signature, C2PA
Three technologies structure 2026 AI-generated-content provenance. SynthID (Google DeepMind) started with image watermarking in August 2023, added text and video in May 2024 (Gemini and Veo), open-sourced the text version in October 2024 through the Responsible GenAI Toolkit, and got a unified multi-media detector in November 2025 alongside Gemini 3 Pro. Text watermarking nudges next-token sampling probabilities imperceptibly, while image and video watermarks survive compression, cropping, filters, and frame-rate changes. Stable Signature (Fernandez et al., ICCV 2023, arXiv:2303.15435) fine-tunes the latent diffusion decoder so outputs carry a fixed message, and images cropped to 10% of their content were detected more than 90% of the time at FPR<1e-6. The follow-up "Stable Signature is Unstable" (arXiv:2405.07145, May 2024) showed that fine-tuning removes the watermark while preserving quality. C2PA is a cryptographically signed, tamper-evident metadata standard (C2PA 2.2 Explainer, 2025). The two approaches complement each other: metadata can be stripped but carries richer provenance, and watermarks persist through transcoding but carry fewer bits.
Learning Objectives
- Describe token-level watermarking (SynthID-text style) and the mechanism by which it is detectable.
- Describe Stable Signature and the 2024 removal attack that broke it.
- State C2PA's role and why it is complementary to watermarking.
- Describe the key limitations: model-specific signal, robustness under paraphrase, and meaning-preserving attacks (arXiv:2508.20228).
The Problem
Between 2023 and 2024, deepfakes and AI-generated content entered political and consumer contexts at scale. Watermarking is the proposed technical provenance signal: mark a generation when it is created, detect the mark later. The 2025 evidence says watermarks can be broken, but layered with C2PA metadata they add up to a usable provenance story.
The Concept
Text watermarking (SynthID-text style)
The mechanism comes from Kirchenbauer et al. 2023, and Google productionized it:
- At each decoding step, hash the previous K tokens to produce a pseudorandom partition of the vocabulary into "green" and "red" sets.
- Bias sampling toward the green set by adding δ to green logits.
- The generation contains more green tokens than chance would produce.
Detection: rehash each prefix, count green tokens in the generation, compute a z-score. The z-score is >0 for watermarked text, ~0 for human text.
Properties:
- Imperceptible to readers (δ is small enough that quality loss is minor).
- Detectable with access to the vocabulary partition function.
- Not robust to paraphrase. Rewriting the text destroys the signal.
SynthID-text is open-sourced October 2024 via Google's Responsible GenAI Toolkit.
Stable Signature (image)
Fernandez et al. ICCV 2023. Fine-tune the latent diffusion decoder so generated images contain a fixed binary message embedded in the latent representation. Detection decodes the message from the latent with a neural decoder. Cropped (to 10% of content) images detected >90% at FPR<1e-6.
May 2024 "Stable Signature is Unstable" (arXiv:2405.07145): fine-tuning the decoder removes the watermark while preserving image quality. Adversarial post-generation fine-tuning is cheap, so the watermark's adversarial robustness is limited.
SynthID unified detector (November 2025)
This shipped alongside Gemini 3 Pro as a multi-media detector that reads SynthID signals from text, image, audio, and video through one API, which unifies the Google provenance stack.
C2PA
Coalition for Content Provenance and Authenticity. It is a cryptographically signed, tamper-evident metadata standard (C2PA 2.2 Explainer, 2025). A C2PA manifest records provenance claims (who created, when, what transformations) signed by the creator's key.
Complementary to watermarking:
- Metadata can be stripped, while watermarks are hard to remove.
- Metadata is rich (a full provenance chain), while watermarks carry bits.
- C2PA depends on platform adoption, while watermarks embed automatically.
Google integrates both in Search, Ads, and "About this image."
Limitations
- Model-specific. SynthID watermarks generations from SynthID-enabled models. A generation from a model without SynthID is not watermarked, so "no SynthID signal" is not proof of authenticity.
- Paraphrase. Text watermarks do not survive meaning-preserving paraphrase.
- Transformation attacks. arXiv:2508.20228 (2025) shows meaning-preserving attacks that destroy both text watermarks and many image watermarks.
- Fine-tune removal. Per "Stable Signature is Unstable," post-generation fine-tuning removes embedded watermarks.
EU AI Act Article 50
Transparency Code for AI-generated content labeling (first draft December 2025, second draft March 2026, expected final June 2026 per the European Commission status page). The Code remains in draft as of April 2026 and the timeline is subject to change. This is the regulatory layer that requires the technical layer: deepfakes must be labeled.
Where this fits in Phase 18
Lessons 22-23 are about what the model emits (private data, provenance signal). Lesson 27 covers training-data governance, and Lesson 24 covers the regulatory framework that requires these technical measures.
Use It
code/main.py builds a toy text watermark. Tokens are integers 0..N-1; watermarked sampling biases toward the hash-defined green set. A detector computes the green-token z-score. You can observe detection at 1000-token generations, watch a 30% paraphrase weaken the signal and a 60% paraphrase erase it, and measure the false-positive rate on human text.
Ship It
This lesson produces outputs/skill-provenance-audit.md. Given a content deployment with a provenance claim, it audits: the watermark mechanism (if any), the C2PA signing chain (if any), the adversarial robustness of each, and the per-modality coverage.
I'd run main.py first and read the four printed z-scores before touching the prose. The toy uses a vocabulary of 200 integers, hashes the previous 4 tokens to split it into green and red halves, and samples from the green half 90% of the time. That is cruder than the logit bias in the text-watermark description, but detection is the same count-and-z-score idea, so you can see the signal without a real language model.
The part I'd poke at is the paraphrase attack. In the code it replaces a fraction of tokens with random ones, which is a harsher edit than a synonym swap. It also breaks the hash context for the tokens after each edit, so the damage spreads past the tokens you touched. Exercise 2 asks you to swap in synonym-style replacements, and I'd compare the two before trusting any single number.
I'd also keep the false-positive check in proportion. It draws 100 uniform-random sequences, which is a far simpler null than human writing. A real detector has to face text with repeated phrases and skewed token frequencies, and nothing in this toy tells you how it would behave there.
Exercises
-
Run
code/main.py. Report z-scores for watermarked 1000-token generation vs human-authored text. Identify the false-positive rate at the 95% confidence threshold. -
Implement a paraphrase attack that replaces 30% of tokens with synonyms. Re-measure the z-score.
-
Read Kirchenbauer et al. 2023 Section 6 on robustness. Why do text watermarks fail under paraphrase but image watermarks survive cropping?
-
Design a deployment that uses SynthID-text + C2PA metadata. Describe the provenance chain a consumer sees. Identify one failure mode of each component.
-
The 2024 "Stable Signature is Unstable" result shows fine-tuning removes the image watermark. Design a deployment control that limits this attack. For example, require signed releases of fine-tuned checkpoints.
Key Terms
| Term | What people say | What it actually means |
|---|---|---|
| SynthID | "Google's watermark" | Cross-modal provenance signal; text, image, audio, video |
| Token watermark | "Kirchenbauer-style" | Biased-sampling text watermark detectable via green-token z-score |
| Stable Signature | "image watermark" | Fine-tuned-decoder watermark; ICCV 2023 |
| C2PA | "the metadata standard" | Cryptographically signed tamper-evident provenance metadata |
| Paraphrase robustness | "does rewording break it" | Text watermark property; currently limited |
| Fine-tune removal | "adversarial unwatermark" | Attack that removes image watermark via decoder fine-tuning |
| Cross-modal detector | "unified SynthID" | November 2025 unified API across modalities |
Further Reading
- Kirchenbauer et al.: A Watermark for Large Language Models (ICML 2023, arXiv:2301.10226): the token-watermark mechanism
- Fernandez et al.: Stable Signature (ICCV 2023, arXiv:2303.15435): image watermark paper
- "Stable Signature is Unstable" (arXiv:2405.07145): the removal attack
- Google DeepMind: SynthID: the cross-modal watermark
- C2PA 2.2 Explainer (2025): metadata standard
Code
- main.py (python, 112 lines)