你调用的真是商家说的那个模型吗?Anthropic 开源 FlashProve,给每条回复附一份数学证明
先说它在解决什么。今天你通过某个 API 或中转服务用大模型,回复到底是不是那个模型生成的,只能靠信任。Anthropic 在研究文章里列了几种场景:中转商为了省钱偷偷换成便宜模型;攻击者篡改返回的内容;评测机构想确认测的和上线给客户的是同一个模型;监管方想确认算力真的在做推理。
01三步:先承诺,再证明,最后验证
FlashProve 分两个阶段。离线阶段,服务商对模型权重做一次“承诺”,可以理解成给这套权重生成一个短指纹,指纹公开,权重保密。线上阶段,对一批已经生成好的回复,服务商再算出一份证明文件,大意是:“用这个指纹对应的模型处理这段提示词,输出就是这些 token。”拿着指纹、提示词和回复的人,可以直接检查这份证明。
技术上它用的是 zkSNARK(零知识简洁证明):“零知识”是证明本身不泄露权重,“简洁”是验证比重新跑一遍模型便宜得多。Anthropic 说,验证者不需要权重,也不需要 GPU。
02数字:能用,但不便宜
Anthropic 拿 Llama 4 Maverick(总参数约 4000 亿的混合专家模型,每个 token 只激活约 170 亿,4 位量化)做测试。按官方文章,单张 H100 生成证明约每秒 110 个 token,每个 1024 token 的请求对应证明约 19 MB;验证端在 24 线程 CPU 上检查一份证明约 17 秒,单线程 21 秒。
代价在生成端:官方称证明所花的 GPU 时间约是 vLLM 正常处理同样请求的 70 到 95 倍。所以它更像抽查或审计工具,不是给每条线上请求都挂证明。官方也说,这是阶段性成果,希望别人拿去改进。
03几条限制,读之前要知道
- 目前只证明最长 1024 token 的上下文,远短于日常聊天的长度。
- 证明针对的是模型的整数版本和贪心解码(每步取概率最高的 token);用浮点实现或带随机采样的回复,可能和被证明的计算对不上。
- 只针对混合专家架构,模型结构本身不隐藏;官方也提到计时等侧信道攻击不在本次范围内。
- Anthropic 说明这是研究原型。仓库 README 写的是“不维护、不接受贡献”。
代码、Lean 形式化证明和文档按 Apache 2.0 许可发布。Lean 是一种数学证明语言,团队用它把“诚实证明会通过、伪造证明会被拒、证明不泄露权重”三条性质写成可机器检查的定理。具体到你我,短期内不会在哪个 API 里直接看到它;值得留意的是,当“确认用的是哪个模型”能被密码学验证后,中转服务和评测的信任方式可能会变。
仓库地址:anthropics/FlashProve,技术报告见这里。以上数据均来自官方文章,非第三方复现。


Claude Code
Hy-Memory
Octop