灰色中转站的天要塌了。
你调用一个模型 API,回复质量掉了,是模型本身正常波动,还是服务偷偷为了省成本换了个便宜模型?以前只能靠猜。模型的输出风格不是证据,哪怕它答得很烂,你也没法证明背后换没换人。
Anthropic 最近放了个开源研究原型,FlashProve,想解决的就是这件事。它让模型提供方为每条回复附一份密码学证明,任何人拿普通 CPU 十几秒就能验证,这条回复确实来自它声称的那个模型,而且证明本身不泄露模型权重。
原理是 zkSNARK。模型方先发布一个权重的承诺,一个很短的指纹,绑定到某一组具体权重上。之后每条回复附带一份证明,证明的就是一句话:这个承诺对应的模型,在这条输入上,产出了这些 token。验证方只需要承诺、输入、回复和证明,不需要权重,也不需要大算力。
数字大概是这样。测试用的模型是 Llama 4 Maverick,400B 参数的 MoE,4-bit 量化。单张 H100 生成证明的速度约 110 token/秒,每个 1024 token 请求的证明大约 19MB。验证端在 24 核 CPU 上 17 秒,单线程 21 秒。作为对比,用 vLLM 直接跑同样的请求,证明的开销大约是推理本身的 70 到 95 倍。
模型方要花约 39 分钟做一次离线承诺,之后这个承诺大约能支撑 1600 万次请求。用完之后得重新提交。
70 倍听起来很大,但这件事该跟之前的 zkML 方案比,不是跟昨天的自己比。同一个模型,VerInf 之前报的数字是 1000 token 要 14.3 小时,证明 93.6GB,验证要将近一天。2024 年 zkLLM 证明 13B 模型大约 2.5 token/秒,2025 年 zkGPT 证明 GPT-2 是 21.8 秒一个 token。FlashProve 把 400B 模型做到 110 token/秒,证明体积压到 19MB。有网友在评论区说,印象里 ZK 证明一直很吃算力,这个数字有点反直觉。
用途不止防偷换。独立评估者可以验证自己测的模型就是对外服务的那个模型。客户通过第三方路由调模型时,可以确认 token 确实来自付费的那个模型。监管方可以要求服务商提交一段时间的推理证明,确认硬件确实在跑推理。攻击者篡改 token 流时,用户也能发现。
Anthropic 还做了一件容易被忽略的事。他们用 Lean 4 把协议的安全性质写成机器可检查的定理,包括完备性、可靠性和零知识。但发布说明里写得很直白,快速执行的 C++ 验证器没有形式保证,只是和 Lean 验证器在所有测试里结果一致。这种主动交代短板的态度,在密码学工程里比喊口号有用。
限制也列得清楚。证明只覆盖 greedy decoding 下的整数模型,浮点实现或采样解码可能和证明偏离。上下文最长 1024 token,和聊天场景动辄几十万 token 的窗口比很短。系统隐藏权重但不隐藏架构。侧信道攻击不在考虑范围内。所以这是研究原型,不是能直接开箱的产品。
评论区有个问题值得记住。有人问,谁来担保承诺的权重就是官方发布的那个模型?承诺只能绑住一组权重,绑不住这组权重和官方发布版本的对应关系,这需要额外的信任机制。FlashProve 证明了推理过程,没证明权重来源。
以后调模型 API,回复自带可验证凭证这件事,可能会变得像 HTTPS 一样平常。但现在说这个还早。
开源地址在 GitHub,Apache 2.0:
https://github.com/anthropics/FlashProve
关注公众号回复“进群”入群讨论

