FlashProve 可验证推理:400B 模型也能出证明,代价是慢 72 倍
你在用 API 调一个「Claude Opus 5.5」的时候,怎么确认返回的真的是它?目前没有答案。你信服务商的文档,信它标的价格,信它写在响应头里的模型名——这些全都由服务商自己声明,没有一样可以被独立验证。
11 月 2 日,Anthropic 发布了一份叫 FlashProve 的开源研究原型,试图给出这个问题的数学答案:模型方提前公开一份权重的密码学承诺,每次请求附一份零知识证明,证明「这份被承诺的模型确实产生了这些输出」。验证方拿到承诺、prompt 和响应,就能在本地核对,全程碰不到权重。
这个 FlashProve 可验证推理方案的意义不在它现在能不能用——它还差得远——而在于它第一次把「模型身份」从一个商业承诺,变成了一道可以算的数学题。
一句话结论:证明成立,但代价是慢 70 到 95 倍
- 它解决什么:防止服务商偷偷把贵模型换成便宜模型、或第三方冒称某模型跑了任务。以前只能靠信任,现在理论上可以靠验证。
- 怎么做到的:基于哈希的 zkSNARK,编译自交互式预言机证明(IOP)。证明「被承诺的权重跑出这些 token」,但不泄露权重、中间值和选中的专家。
- 规模到了什么程度:拿 Llama 4 Maverick(400B 总参数、每 token 约 17B 激活)做基准。这是目前公开证明过的最大模型之一。
- 代价:相比 vLLM 在 8 张 H100 上的 FP8 推理,单卡开销约 72 倍,满载时约 94 倍。整体 70–95 倍。
- 现状:研究原型,GitHub 上明确标注「不再维护」(Not maintained),Anthropic 没有部署计划。
FlashProve 可验证推理要解决的,是「你到底在跑谁」
先把问题摆清楚,不然容易把这件事和「模型水印」「内容溯源」混为一谈。
现有的「模型身份」手段基本是三类,都有明显漏洞:
- 声明式:响应里的
model字段、文档里写的型号。服务商说什么就是什么,改一行字符串的成本为零。 - 行为指纹:靠输出风格、特定问题的答案去判断是谁。可被蒸馏、可被微调模仿,也不构成任何硬保证。
- 内容水印:在输出里埋标记。它证明「这段话出自这个系统」,但证明不了「这次推理用的是这份权重」,也不防换模型。
FlashProve 走的是第四条路:密码学证明。逻辑是这样的——
模型方先在离线阶段,对一份隐藏的权重集合生成承诺(commitment),公开这个承诺。之后每来一批请求,就生成一份证明:「用这份被承诺的权重,按这套计算规则跑,会得到这些输出 token」。证明是完备的、可靠的、对权重和中间值零知识的、且简洁的(succinct)。验证方只要有承诺、prompt 和响应,就能核对。
关键在于「零知识」这四个字用在哪:权重、中间激活值、以及 MoE 路由选中的专家,都藏在证明里。而被证明的计算本身是公开的——模型架构不隐藏,只有参数隐藏。这个取舍是有意的:架构本来就能从论文里读到,藏它没有意义。
400B 模型、110 tokens/秒:这组数字该怎么读
零知识证明推理这件事不新,难的是规模。早先的工作大多停在 CNN、GPT-2、13B 这个量级;商业系统里出现过 31B 稠密模型。同一个 400B 的 Maverick,之前有方案(VerInf)做到过,但速度是 0.02 tokens/秒。
FlashProve 把它推到了 110 tokens/秒。这中间的差距是 5500 倍。
| 指标 | FlashProve 实测(Llama 4 Maverick 400B) |
|---|---|
| 离线权重承诺 | 约 39 分钟,一份承诺可覆盖约 1600 万次请求 |
| 在线证明吞吐 | 24 条请求一批 223 秒,即 110 tokens/秒 |
| 单份证明体积 | 18.78 MB(约 19 MB / 1024 token 请求) |
| 承诺下载量 | 约 6.5 MB |
| 验证耗时 | 24 线程 17 秒;单线程 21 秒(含离线检查) |
| 证明方硬件 | 1 张 H100 + 24 个 CPU 核心;80 GB 显存 + 约 290 GB 主机内存 |
| 验证方硬件 | 只要 CPU |
| 相对 vLLM FP8(8×H100)开销 | 单卡约 72×,满载约 94×,整体 70–95× |
表里有几个细节值得单独拎出来说,它们决定了这套东西「能用在哪儿」。
第一,MoE 是这套方案能成立的前提。Maverick 总参数 400B,但每个 token 只激活约 17B。证明的工作量跟着激活参数走,不是跟着总参数走。如果没有这个结构,400B 模型的证明开销会大到没法看。
第二,验证端极轻,证明端极重。验证只要一颗 CPU、17 到 21 秒、下载 6.5 MB 承诺——这个成本普通用户能承受。但证明要一张 H100 跑 223 秒才出 24 条请求。这就是为什么现在的形态只能是「事后批量证明」,不是「实时随请求出证」。

第三,证明体积很尴尬。19 MB 一份证明,比很多 API 的响应本身大几个数量级。做批量审计没问题,塞进普通用户的每次调用就不现实了。
它能向你保证什么,不能保证什么
这部分我觉得最值得认真读,因为一个「零知识证明」方案的宣传最容易过度延伸,而原文把边界划得很清楚。
它保证的:在你拿到的这份承诺之下,被承诺的权重按这套计算规则,确实会产生你看到的这些 token。而且它没有向任何人泄露权重。
它不保证的,至少六条:
- 只覆盖整数、贪心解码的模型。证明的是 4-bit 量化权重的精确整数计算。浮点运算或采样解码会产生分歧;而且那个「误差很小」的期望,不覆盖对抗性构造的 prompt。
- 上下文只到 1024 token。长文档、长对话目前不在范围内。
- 只隐藏权重,不隐藏架构和专家路由结构。原文说得很直白:架构不是秘密。
- 快速验证器没有形式化正确性保证。只有较慢的 Lean 版本和可靠性定理挂了钩;论文、Lean 规格和可执行代码之间也没有形式化保证一致。这意味着「形式化的说法」仍然需要人工审计。
- 时序等侧信道不在范围内,而这些侧信道理论上可以泄露权重信息。
- 它证明不了硬件没在同时干别的——比如同一批 GPU 一边推理一边偷偷训练。这条听起来最荒诞,但实际上是一道真实的信任缺口。
还有一处结构性的限制:因为是事后批量证明,用户在拿到结果的那一刻其实还没有保证,要等证明批次出来。原文也承认这会引入重复计算、延迟和不确定性。换句话说,它更适合「第三方事后审计」,而不是「用户实时对账」。
为什么现在没人能用它
GitHub 仓库的简介只有一句话:「一个用于 AI 推理零知识证明的研究原型。不再维护。」(Not maintained)许可证 Apache 2.0,代码、规格文档和 Lean 形式化证明都在里面。
Anthropic 自己的表述也很克制:这是一份「中间进展」,不是一份完成的研究议程;发出来是希望别人「拿去改进」(take it, and improve it)。没有部署到 Anthropic 内部或任何实验室的计划。
为什么?因为 70 到 95 倍的开销在商业上说不通。推理成本本来就是模型公司最大的一项支出之一,叠加上百倍,没有哪个 API 会这么做。真正能用的场景,大概率是这三类:
- 合规与审计:监管或第三方需要抽查「某次高风险调用是不是用了声明的那款模型」,一批 24 条、223 秒的节奏完全够用。
- 招标与验收:政府或大企业采购模型服务,要求供应商证明交付的是合同里那款模型。
- 纠纷取证:两个方吵「你到底用了什么模型」,拿承诺和证明来对账。
这三类场景的共同点是:成本敏感度低、单次调用价值高、批量容忍度高。恰好和高频推理 API 的画像反过来。
这件事对普通用户和开发者意味着什么
结论很直接:你现在的用法一点都不用改。没有哪家 API 会因此变慢或变贵,也没有哪家会上线这个功能。
但有两件事值得留意:
- 「模型身份」这个问题终于有了形式化定义。以后讨论「服务商偷偷降级模型」这类指控时,至少知道一个「够格的证明」长什么样——不是风格像不像,而是能不能验。
- 别把水印和证明搞混。水印回答的是「这段内容出自哪个系统」,证明回答的是「这次推理用了哪份权重」。前者防伪造内容,后者防偷换模型。两者都做不到对方能做的事。
小结
FlashProve 是一次把「信任」拆成数学的技术演示:它证明了在 400B 的 MoE 模型上,可以对一次推理给出密码学层面的证据,而且速度比之前的方案快了三个数量级。这个进展本身是扎实的。
但它同时也证明了这条路现在有多贵:70 到 95 倍的推理开销、19 MB 一份的证明、1024 token 的上限、只能事后验证。这些限制加起来,注定它今天只是一个审计工具的原型,而不是 API 的一个功能。
我的判断是:这件事的价值在未来两三年会慢慢显现——不是因为它会部署到线上,而是因为当一个「可验证」的标准存在之后,那些没法验证的声明就会开始显得可疑。到那时候,能提供证明的服务商和不提供的,会被分开看待。
参考来源
- Anthropic:Progress on provable inference for large language models(2026-11-02,技术细节原始出处)
- GitHub:anthropics/FlashProve(开源代码与规格,Apache 2.0)
- TechCrunch:Anthropic is working on a system to prove AI models’ identity(2026-11-03)


