Anthropic FlashProve 深度:400B 模型证明 17 秒验证

给大模型发一张防伪身份证。Anthropic 在 11 月 2 日开源的 FlashProve 用零知识证明解决了长期无解的难题,任何人拿着约 19 MB 的证明文件、在普通 CPU 上跑 17 秒,就能确认一次回答确实出自某组特定权重,而不必看到权重本身。一句话结论:模型身份第一次有了密码学级别的可验证答案,代价是证明开销约为普通推理的 70 到 95 倍。

这件事的必要性来自一个很具体的场景。企业花了旗舰模型的钱,走第三方 API 中转站拿到的回答却可能来自一个缩水的小模型,用户只能靠回答质量反推,常常分不清是模型随机性、服务波动还是后台换了货。安全评估方的问题更硬,要确认被测对象和实际部署的是同一个模型,否则整份评估报告失去意义。Anthropic 把这类信任缺口拆成四类,并且给每一类配了一个可以用密码学验证的解法。

四类信任缺口:为什么回答质量证明不了模型身份

FlashProve 解决的第一类是节奏管控。监管方可能要求一家公司把采购的硬件用于推理而不是训练新模型,公司完全可能把推理请求偷换成成本更低的模型。第二类是篡改检测,推理服务器被攻破后,权重可能被窃取,输出 token 可能被替换;更麻烦的情形是更強的模型自我顶替,伪装成被批准的弱模型以绕过监控。第三类是文本溯源,开发者声称用前沿网络安全模型扫过某个代码库,公布一份聊天记录声称某份商业计划获过某模型认可,这些声明目前都可以伪造。第四类是模型审批,监管要求只服务已批准模型时,提供商同样有动机绕过。

传统解法有两条路,都不好走。一条是拿到权重自己跑一遍,前沿模型的权重是各家命根子,而且跑一次 4000 亿参数模型的成本普通用户和评测机构都承受不起。另一条是依赖可信执行环境,也就是 TEE,把认证与隐私押在厂商的防篡改硬件上。FlashProve 走的是第三条纯软件密码学路线,安全性只依赖计算困难性假设,即使操作系统和硬件被攻陷,攻击者也无法构造出有效的假证明。

这个思路在本站此前讨论模型安全边界时反复出现过。模型能力越强、越能自我部署,冒名顶替的动机就越强,单纯提高审核频率并不足以覆盖风险。可以参照 Anthropic 自动化红队用 5000 条样本骗过训练监控器的案例,以及 Cloudflare 发现的 GLM-5.3 跨租户 KV Cache 泄露,两件事都指向同一个结论,模型供应链上的信任漏洞必须靠密码学而不是流程规范来堵。

两阶段机制:承诺与证明的分工

FlashProve 分离线与在线两个阶段。离线阶段,服务商用零知识编码对模型权重生成一个承诺,也就是一串短的数字指纹,锁死唯一一份确切权重,权重本身继续保密。这个阶段每个模型只跑一次,耗时约 39 分钟,产出的承诺大约 6.5 MB,可覆盖约 1600 万次请求,之后需要重新承诺。

在线阶段,服务商针对每一次请求生成证明文件,证明的命题只有一句,被承诺的那个模型在给定输入下产生了这些输出 token。拿到承诺、提示词和回复的人,不用持有权重,也不需要 GPU,就能独立验证这个命题。整个流程里最关键的一点是,prover 的工作量与模型实际激活的参数量成正比,而不是与全部参数成正比。

这项优化只在 MoE 架构下成立。FlashProve 测试的是 Meta 的 Llama 4 Maverick,4000 亿总参数,每 token 实际激活约 170 亿参数,证明计算因此节省掉九成以上的无效陪跑。系统还采用批量事后证明,prover 一次性并行读取已经生成的文本,像 prefill 那样每批只打开一次权重承诺,而不是每个请求各开一次。整套工程被设计成单卡可跑,权重放在主机内存里流式载入 GPU,单张 80 GB 的 H100 加约 290 GB 内存就够用。

实测数字:110 token/s 与 17 秒验证

以下数字全部来自 Anthropic 官方博客与配套技术报告,测试对象为 Llama 4 Maverick 的 4-bit 量化版本,量化后约 232 GB,请求窗口 1024 token,每份证明校验其中一个输出 token,批大小 24。

指标 实测值 条件说明
证明生成吞吐 110 token/s 单张 H100,批大小 24
单批证明耗时 约 223 秒 24 个请求一次性完成
单份证明文件大小 18.78 MB 1024 token 请求窗口
验证耗时 17 秒 / 21 秒 24 线程 / 单线程,纯 CPU
离线承诺生成 约 39 分钟 每个模型一次
承诺覆盖量 约 1600 万次请求 超期需重新承诺
客户端下载量 约 6.5 MB 承诺总量
相对 vLLM 推理开销 约 66 到 77 倍 同批次对照,满载时约 94 倍

对照组的 vLLM 用 FP8 版本同模型跑在 8 张 H100 上。按单卡计,一批 24 个请求的证明耗时约为 vLLM 处理同批请求的 72 倍,多次运行落在 66 到 77 倍区间,vLLM 满载时最差约 94 倍。这个数量级比起此前学界的预期低不少,核心原因就在前面提到的 MoE 激活稀疏性与批量事后证明两处设计。

纵向对比:FlashProve 比前代快了多少

零知识机器学习研究过去长期困在小模型上,FlashProve 把可验证推理推进到 4000 亿参数级别,跃迁幅度可以用官方给出的对照表直接读出来。

工作 模型 证明性能
zkCNN (2021) VGG-16,1500 万参数 88.3 秒每份证明
ZKML GPT-2 (Eurosys 2024) GPT-2,1.17 亿参数 约 159 秒每 token
zkLLM (2024) LLaMA-2-13B 约 15 分钟,批量约 2.5 token/s
zkGPT (2025) GPT-2 21.8 秒每 token
zkPyTorch (2025) Llama-3 8B 约 150 秒每 token,单 CPU 核
Modulus Labs 1.5B GPT-2 XL 单份证明超过 90 小时
VerInf Llama 4 Maverick 400B 约 0.02 token/s,1000 token 需 14.3 小时
DeepProve GPT-2 / Gemma 3 单机 2.9 与 1.4 token/s,分布式 31 token/s
SASH prover (2026) Llama 3.1 8B 约 1.25 token/s
Attestable(商业,未开源) Gemma 4 31B 稠密模型 53 到 77 token/s
FlashProve Llama 4 Maverick 400B MoE 110 token/s,证明 19 MB,秒级验证

最有说服力的一行是同门对比。VerInf 用的就是 Llama 4 Maverick 这一款 4000 亿参数 MoE,证明速度约 0.02 token/s,跑满 1000 token 要 14.3 小时,单份证明 93.6 GB,验证接近一整天。FlashProve 在同款模型上把吞吐推到 110 token/s,效率提升超过 5000 倍,证明文件还从 93.6 GB 缩到 19 MB。这个对比同时说明,FlashProve 真正的贡献不只是密码学配方,更是针对 MoE 结构的工程实现。这条路线也让我们重新审视评测本身的价值,当基准的区分度被压缩到极限时,Claude Opus 5.5 在 105 个基准上通过率只有 45.6% 这类现象就更值得警惕,因为分数之外还得有办法确认被测对象。

Lean 形式化验证与两条残余信任缺口

FlashProve 的安全性建立在四条性质上。完备性保证诚实生成的证明一定被接受。可靠性保证假命题的有效证明在计算上不可行,验证者因此不需要信任 prover。零知识保证验证者对权重、计算的中间值、每层实际跑了哪些专家一无所知。简洁性则保证被证明的计算是在 H100 上跑一个 4000 亿参数模型,而验证者收到的文件只有约 19 MB。完备性和可靠性单靠一个知道权重的强力验证者也能实现,真正让这套系统非平凡的是零知识与简洁性这两条。

Anthropic 用 Lean 证明助手为协议与安全属性写了机器可检的证明,三个顶层目标分别是完备性、可靠性和零知识,性质在随机预言机模型下陈述。为了让这些抽象陈述可读,官方还提供了一个交互式可视化器 STATEMENTS.html。仓库的语言构成相当反常,C++ 只占 1.4%,Python 占 1.3%,CUDA 占 0.9%,其余 95.2% 也就是约 398 MB 全部是 Lean 4 数学证明,一份 114 页的协议规范也由 Claude 撰写。

不过形式化验证不等于全流程无残余风险,官方自己列了两条。一是形式化陈述本身需要人工审计,以确认它与设计意图一致,交互式可视化器就是为这件事准备的。二是可执行代码需要审计,以确认与形式化协议一致。两条性质的依赖面不同,可靠性只依赖验证者,官方提供了可执行的 Lean 验证器并由 Lean 证明它接受的判定与定理一致,日常使用仍推荐 C++ 验证器,它没有形式保证但在全部测试证明上与 Lean 验证器结果一致。零知识只依赖 prover,而 Lean 版 prover 运行代价过高,官方没有提供相应辅助设施,只能期望需要隐藏权重的 prover 有足够资源做细心的审计。Anthropic 与 EPFL、MIT 的密码学学者合作完成了这项工作,形式化工具在科研场景里的价值可以参考本站此前对 PSI 用 Lean 4 攻克 5 道量子开放问题的记录。

四个限制条件决定了它离落地还有距离

第一,快速验证器没有形式保证,论文、Lean 协议与 C++ 实现三者的一致性目前靠审计而非机器保证。第二,证明针对整数模型与贪心解码,浮点实现或采样解码的回复可能在某位置偏离,从而不再精确匹配被证明的计算,整数版本与真实浮点推理的误差率虽小,但并不覆盖对抗性设计的提示词。第三,架构未被隐藏,系统利用 MoE 结构换取效率,而其他架构同样广泛使用,未来需要把权重与架构一起纳入承诺。第四,侧信道不在保证范围内,生成证明所需的时间等测量值仍可能泄露权重信息。此外上下文长度只有 1024 token,相比聊天场景累积的上下文很短,长上下文与多轮智能体工作流如何高效生成并验证证明仍是开放问题。

值得一提的是,这项研究与 Anthropic 在 Frontier Safety Roadmap 里的承诺直接相关。该路线图曾要求在 2026 年 9 月 30 日前开发出可证明推理原型,2026 年 10 月 19 日的更新把目标名称改为推理验证,理由是原目标关注 token 流完整性的高保证,实现路径不止一种,而可证明推理这个说法暗示的路径比实际需要的更窄。

常见问题

FlashProve 能证明模型回答正确吗?不能。它证明的是回答确实来自被承诺的那组权重,而不是回答的内容正确。如果指定模型产生了幻觉,验证依然会通过。这套机制解决模型身份与推理完整性问题,与模型能力和事实准确性无关。

普通用户现在能用上吗?目前是研究原型,代码、Lean 证明与技术文档以 Apache 2.0 协议开源,权重不随发布提供,需要自行下载第三方 4-bit 转换权重。运行完整示例需要大型 GPU 机器与 Meta tokenizer 访问权限,且需要自行承担约 70 到 95 倍的证明开销。

它和隐形水印有什么区别?隐形水印把标记埋进输出文本,是一种概率性检测手段,攻击者可以重写文本去除,且无法回答这个回答来自哪组权重。FlashProve 是密码学证明,绑定到具体的权重承诺,伪造需要在计算上不可行。它更重、也更贵,换来的是可独立验证的确定性结论。

小结

FlashProve 把模型身份从一句服务承诺变成了一个可验证的数学命题。19 MB 的证明文件、17 秒的 CPU 验证、110 token/s 的生成速度,加上约 72 倍于普通推理的开销,勾勒出一套目前最接近可用的可证明推理方案。它还远不是产品,1024 token 的上下文、整数模型与贪心解码的限制、未覆盖的侧信道,以及需要人工审计的两处残余缺口都摆在那里。但方向已经清楚,模型身份这个此前只能靠信任担保的问题,开始有了密码学答案。

相关阅读