Anthropic 的 FlashProve:用密码学证明「回答出自哪个模型」,研究原型能做到哪一步

你调用一个模型 API,其实没法确认回答你的就是你付钱买的那个模型。Anthropic 前沿红队 11 月 2 日公布的 FlashProve 研究原型,让服务方先对权重做承诺,再给每个回答附上一份证明,你在 CPU 上就能验。它能证明的东西很硬,限制也很多:只证明贪心解码下的一个 token,跑的是 Llama 4 Maverick,不是 Claude,证明的 GPU 开销是普通推理的 70 到 95 倍。

你通过一个路由服务调用某个大模型,账单上写的是贵的那个,回答读起来也挺像。可你没有任何办法确认,中间没有人为了省钱把请求转给了便宜的模型,或者有人篡改了返回的 token 流。Anthropic 在 研究文章 开头就承认了这一点:今天的用户查不了,光看输出质量来判断也不可靠。11 月 2 日,Anthropic 的前沿红队和 EPFL、MIT 等机构的研究者一起公布了 FlashProve,一个「可证明推理」的研究原型。文章自己说得清楚,这篇研究文章分享的是阶段性进展,不是一项已完成的研究议程。

它证明的是:承诺过的那组权重,对这个提示词会给出这个 token

FlashProve 用的是 zkSNARK,一种零知识简洁证明。流程分两段。离线阶段,服务方对模型权重发布一个承诺,相当于一枚短指纹,钉死一组确切的权重,但不暴露权重本身。在线阶段,服务方对具体的请求生成证明文件,内容是「承诺过的模型对这个提示词,会产生这些输出 token」。手里有承诺、提示词和回答的任何人,都能在没有权重、算力有限的情况下检查这份证明。

这份证明有四个性质。诚实的证明会被接受;伪造的证明几乎不可能通过,你不用信任服务方;证明不泄露权重、中间计算值和每层选了哪些专家;证明很小,验起来便宜。Anthropic 用 Lean 形式化证明了完备性、可靠性和零知识这三条顶层性质,并发布了一个慢但有形式化保证的 Lean 验证器,外加日常用的 C++ 验证器。代码、Lean 证明和文档都以 Apache 2.0 许可开放在 GitHub。文章还提到,这些改进是 Claude 做出来的,团队用 Lean 写出可审计的顶层陈述,来对冲 Claude 那些难以评估的设计决定。

文章设想的用法有几种:评测机构确认自己测的就是线上那个模型;通过第三方路由的客户确认 token 来自自己付费的模型;公司检查自家服务器上实际跑的是哪组权重,发现被入侵的服务器或者被替换的模型;监管方要求只能提供经过批准的模型。

它证明不了的,比标题里写的多

技术报告 把边界写得比博客细,有几条直接决定你能不能拿它当真。

第一,证明的对象是 Llama 4 Maverick 这个 4000 亿参数的混合专家模型的一个整数版本,判定标准是贪心解码。报告摘要写明,每份证明只检查一个输出 token,也就是紧跟在提示词后面的那一个 token。真实服务大多跑浮点,还常用采样。报告里,两个浮点引擎(16 位和 FP8)各生成的 96 个贪心输出,没有一个在每个位置都和整数模型一致。所以要满足严格匹配,服务方得直接跑这个整数模型。报告也提供了一种更宽松的「截断间隙」判定,但它会接受大多数被替换了一个 token 的输出,以及大多数温度 0.7 的采样输出,报告自己把它标为弱。

第二,上下文目前最多 1,024 token,和聊天里动辄几十万 token 的上下文差得很远。

第三,隐藏的只是权重。模型架构不隐藏,系统还默认它是混合专家结构;报告说每个请求会泄露一个依赖权重的比特;计时之类的侧信道攻击不在这次的范围内。

第四,形式化保证只覆盖 Lean 里的协议和验证器,日常用的 C++ 验证器和证明程序没有任何形式化保证,报告也说几乎没去找攻击,「没写出攻击」不等于安全。服务和证明也还没有作为一个服务一起跑过。

最后,这不是 Claude 的功能。实验用的是 Meta 的 Llama 4 Maverick 公开权重,文章和报告都没说 Claude API 会不会提供这种证明、什么时候提供。在监管场景里,文章也承认它只能证明硬件在做推理,证明不了硬件没在偷偷训练。

代价落在服务方:一张 H100 跑证明,开销是普通推理的 70 到 95 倍

服务方一侧,证明程序跑在一张 H100 加 24 个 CPU 核的机器上,权重放在普通内存里按段流式送进 GPU,需要大约 290 GB 主机内存。离线承诺每个模型做一次,大约 39 分钟,一个承诺能用大约 1,600 万个请求,之后要重新承诺。在线阶段一批 24 个请求大约要 223 秒,折合每秒约 110 个 token。这里要看清楚报告的口径:这个速率数的是预填充 token,一批只有一个请求时降到每秒约 17 个。证明是事后批量做的,不是边推理边证明,所以你拿到保证会有延迟。

和 vLLM 比,按每张 GPU 算,证明一批 24 个请求的时间大约是 vLLM 处理同样请求的 72 倍,各次运行在 66 到 77 倍之间;放到测试过的最高负载下,是 94 倍左右,技术报告里是 93.0 倍。报告补了一句:这个倍数没算承诺和服务本身,实际可能更高。

用户一侧轻得多。你只需要 CPU,先一次性下载大约 6.5 MB 的承诺,之后每个请求一份大约 19 MB 的证明,24 线程验一份大约 17 秒,单线程大约 21 秒。

放在这条研究线里看,进展确实大。文章引用的 VerInf 证明的也是 Llama 4 Maverick,1,000 个 token 要 14.3 小时,证明 93.6 GB,验证花了将近一天。不过 VerInf 用的是自己的 Maverick 整数模型,跑在一台 DGX Spark 上,证明的也是另一件事,所以这几个数字没法和 FlashProve 直接对比。商业公司 Attestable 报告在一张 H100 上对 Gemma 4 31B 这个稠密模型做到每秒 53 到 77 个 token,但没有开源。

原文没交代的

几件事博客和技术报告都没给答案:Anthropic 会不会把这套证明用到 Claude 或自家 API 上;把上下文做长、支持采样解码、隐藏架构要多久、要多大代价;在真实流量上把服务和证明接成一条链路之后,端到端延迟是多少。文章脚注倒是交代了一个背景:Anthropic 在前沿安全路线图里承诺 2026 年 9 月 30 日前做出可证明推理原型,这个目标已经通过另一个项目完成,那个项目给推理流量签名,再在可信服务器上重算;FlashProve 是用密码学走的另一条路。

如果你在做模型评测,或者负责采购、审计第三方模型服务,FlashProve 现在就值得读一读报告第 8 节的限制清单,再在 GPU 机器上跑一遍开源代码。它离「每次 API 调用都附一份证明」还远,但「你自己验得起」这件事,已经在 400B 级别的模型上有了公开、可复现的数字。

参考来源

相关产品

  1. FlashProve 技术报告GitHub · 引用于 2026 年 11 月 3 日
  2. FlashProve GitHub 仓库GitHub · 引用于 2026 年 11 月 3 日