水印与内容凭据

E25
概念 · AI 模型与工具生态

水印与内容凭据。

市面上每一种标记方案回答的都是「这个文件是哪个系统产出的」,而你带着来的那个问题——「这是不是真的」——没有任何水印回答过。更糟的是,可用的两种机制恰好以互补的方式失效:签名凭据扛得住改写,却死于一次截图;统计水印扛得住截图,却死于一次改写。所以你能依赖的只是你对自己创作内容的保管链,而绝不是某个检测器对你收到的内容给出的裁决——而一个缺失的标记,什么都证明不了。

STEP 1

两种机制,以及各自究竟主张了什么。

这个领域已经收敛到恰好两种技术,而它们并不是彼此的变体——它们待在不同的地方,许下不同的承诺。

  • 内容凭据——签名元数据。C2PA 标准给文件附上一份经密码学签名的清单(manifest):是谁或什么产出了它、用了哪个工具、此后又对它做了什么。签名就是普通的公钥密码学,所以校验是机械的、主张是可审计的。近期的修订把清单从图像与视频扩展到了纯文本文档。它的承诺既强又窄:这项断言是由持有该密钥的一方作出的,此后未被改动。
  • 水印——内容内部的一个信号。Google 的 SynthID 系列是记录最完整的例子:对文本,它在若干概率近乎相当的 token 之间偏置采样器的选择,使得持有密钥的检测器能给一段文字打出「很可能带水印」的分;对图像与音频,它在感知阈值以下扰动信号。什么都没有附上,所以什么都不会被一次格式转换剥掉。它的承诺更弱也更广:某一个生成器的统计痕迹以某个概率留存在这段内容里。

请注意两者都没有说什么。一张照片上的凭据告诉你某台持有特定密钥的相机为它签了名;它并没有告诉你这张照片拍的不是一个摆拍的场景。一段文字里的水印告诉你某个模型很可能写了它;它并没有告诉你这段文字是假的,而它的缺席也不告诉你这是人写的。标记是一种归属技术。真相并不在它的下游——这正是接地与厂商就一个模型发布的那些文件所做的、任何标记都做不到的那份工作。

好用的心智模型是运单标签,而不是测谎仪。它能告诉你这个箱子是从哪个仓库发出的、封条是否完好。它不能告诉你箱子里装的是不是你订的东西。

STEP 2

两者的失效模式互补,而这正是整个设计难题所在。

每一种机制都恰好抗得住那个摧毁另一种的东西。这就是为什么认真的方案会把两者配对,也是为什么单独哪一种在真实世界里都撑不住。

# what survives what

                       signed manifest    in-content watermark
re-encode / resize     fragile            robust
screenshot / re-type   destroyed          robust (image) / robust (text)
paraphrase / rewrite   robust             largely destroyed (text)
crop / heavy edit      invalidated        degrades
deliberate removal     trivial            hard but studied

# the attacker picks the cheaper column.

这种不对称在文本上尤为触目。一份已发表的 SynthID-Text 评估把它在未经编辑的输出上的真阳性率放在接近 0.998,而在中等程度改写下约为 0.498——在任何人都能做出的那个最便宜的编辑之后,就只剩掷硬币了;而往返机器翻译对检测的削弱也大致相当。图像水印的处境要好得多:同一系列被报告在面对最糟的单次变换时、于 0.1% 假阳性率下约有 99.7% 的真阳性率,在叠加变换下约为 98%。

签名元数据把这张表翻了过来。改写碰不到它,因为它不在内容里。但凡是重写文件的东西就是在重写文件:一次截图与其说是剥掉了清单,不如说是造出了一件全新的、未签名的物件,只是它看上去和原来那件一样。内容实际途经的大多数管道——某个消息应用的重编码器、某个 CMS 的缩略图生成器、一次复制粘贴——产出的恰恰就是这个。

所以实务上的结论并不漂亮。对图像而言,水印是那层耐久的,凭据是那层可审计的。对文本而言,没有耐久的那层:能击败水印的那个编辑,正是一个有动机的人默认就会做的编辑;而开放权重模型除非部署方自己选择加上,否则根本不带任何标记,而且没有什么能阻止它被去掉。

STEP 3

法律要求打标记。它并不要求任何人读得出这个标记。

这是让人意外的那道缺口,而它是条文起草的后果,不是疏漏。欧盟《AI 法案》第 50 条要求生成式系统的提供者以机器可读的方式标记合成输出,该义务自 2026 年 8 月 2 日起适用(并有报道称已在市场上的系统依后续修订可延至当年更晚)。义务落在生产方头上,要它嵌入。它并没有相应地给接收方创设一项核验的权利。

结果是一个有标记制度、却没有核验制度的局面。主要的文本提供方在那个日期前后开始嵌入不可感知的标记;没有任何公开的检测器读得出它们。那把能给一段文字打分的密钥留在提供方手里,因为公布它差不多等于公布去除说明,而一个任何人都能查询的检测器,就是一个规避者可以对着调参的检测器。于是合规这一栏被打了勾,而下游那个问题——这篇作文、这条评论、这份申报,是不是模型写的——和从前一样完全无法回答。

  • 你没法靠采购买到检测能力。一家声称能检测 AI 文本的厂商(提供方核验自家输出这一局部例外除外)卖给你的是一个分类器——而这个领域里的分类器,其假阳性率高到在被当作证据使用时已经对真实的人造成过真实的伤害。
  • 被标记不等于可追溯。来自两家提供方的两个被标记文件,是两套互不相干的方案、两把私钥。并不存在一个可互操作的「这是合成的吗」查询,而一条标记强制令也创造不出这样一个查询。
  • 去质询那个声明,而不是那件物件。在披露真正要紧的地方——一份申报、一次提交、一项公开声明——可执行的控制是由一个可担责方作出的声明,这正是披露与内容溯源里的论点,而不是对字节做一次扫描。

请把「AI 生成内容检测」和「AI 内容溯源」当作两个前景不同的项目来对待。后者在你所控制的系统里是一个可解的工程问题。前者是在你不控制的内容上的一个对抗性检测问题,而今天出货的任何东西都改变不了它的胜算。

STEP 4

既然检测不会到来,那该建什么。

该做的动作是:别再追问收到的是什么,开始证明你发出的是什么。当你拥有创作的那个时点时,溯源是奏效的——而这正是一个智能体系统真正能落地的那一半。

  • 在创作的那一刻、在你自己的管道里签名。如果你的智能体产出了一份报告、一份转写稿或一张图像,就在这件物件离开产出它的那个进程之前把凭据附上——连同模型、提示词版本、工具调用,以及那个批准了它的人。正是这份记录让审计轨迹关于输出、而不只是关于日志;而且即使没有任何接收方去核验它,它也是有用的。
  • 把凭据当作一个字段来携带,而不是当作文件元数据。在你自己的存储里,让溯源记录按 ID 与内容关联在一起。这样一个缩略图生成器剥掉内嵌清单就什么都不会让你损失,而那份清单也就成了给边界之外接收方的一份额外赠品,而不是你唯一的副本。
  • 绝不要把未标记的输入当作人写的。这是最常见的那个设计错误。一条把「未找到凭据」路由到受信分支的接入路径,是攻击者什么都不做就能走的路径——和任何一个失效时放行的检查是同一种失败形状。未标记意味着未知。
  • 也绝不要把已标记的输入当作可信的。一份有效凭据证明的是来源,不是意图。带着一份完美清单抵达的内容,仍然是进入模型上下文的不可信文本,而提示词注入并不在乎是谁签的名。
  • 给你的智能体的出站内容打标记,理由是接下来是谁在读它。你输出内容的消费者中增长最快的那一类是另一个模型。一件被标记、带凭据的物件,是链条上的下一个系统得以分辨「这是你的智能体写的」还是「这是用户写的」的方式,而这一区分正是一套能扛过一次往返的指令层级的基础。

请做那两件无论检测这条线最终如何收场都会回本的事:给你的系统创建的每一件物件附上一份溯源记录,并把它存成一个关联字段而不是内嵌元数据;再把每一条接入路径都审一遍,找出那个把「未标记」当成「人写的」的分支。前者是一周的工作量,它让你自己的输出站得住脚;后者通常至少能找到一处地方,那里水印的缺席正被悄悄读成一个阳性结果。延伸:合成数据看同一个溯源问题在训练侧的版本,钉版与校验看你的智能体所消费物件上的签名,以及面向智能体的欧盟《AI 法案》看这条标记义务在其余部分中的位置。