anthropics/FlashProve
安全让 AI 提供方证明某次回复来自已承诺的模型且不暴露权重,协议可靠性在 Lean 中验证,当前不维护。
项目介绍
FlashProve 是一个面向 AI 推理零知识证明的研究工件:提供方先发布 commitment ID 绑定一组保密权重,再为每条回复在 GPU 上生成证明,任何人都能用 cp_verify 在普通 CPU 上几秒内完成验证,全程不需要看到权重 项目说明。commitment ID 是验证的锚点,所有依赖权重的公开值都被掩码,只有一份声明的清单例外 未隐藏的内容。
模型方面,它在单张 NVIDIA H100 上以完整规模运行 Llama 4 Maverick,上下文 1024 token,批量 24 个请求时 prefill 约 110 token/s 运行模型 性能。协议可靠性在 Lean 4 中证明:若提供方用非承诺模型的输出冒充,在 q 次哈希查询后仅以约 q/2^124 + 2^-101 的概率逃过检测 证明内容 THEOREM.md。
它适合研究协议、核查证明工件或将验证接入流程的人,不适合直接用于生产服务。
快速开始
路线 1 是最小的完整流程:构建验证器,检查仓库内附带的示例证明。
环境要求:Linux、bash、g++ 13+,内存低于 2 GB。在最小化 Ubuntu 24.04 上,以 root 安装依赖:
apt-get update && apt-get install -y --no-install-recommends g++ make python3 unzip
其余命令都在仓库根目录以普通用户运行,不要用 root 或 sudo 硬件与软件 给 agent 的规则。
verifier/build.sh
构建会安静运行 1–2 分钟,成功时打印以 THE VERIFIER IS BUILT: 开头的行并退出 0 构建验证器。出现以 build.sh: note: 开头的行是警告,需要在报告中引用 构建输出。
然后检查示例证明:
bin/cp_verify examples/accepted-proof/config examples/accepted-proof/ivk examples/accepted-proof/example.req examples/accepted-proof/example.y examples/accepted-proof/example.proof -id "$(cat examples/accepted-proof/ID.txt)"
预期最后一行是 YES,退出码为 0。该示例使用合成权重的小模型,只能证明验证器本身可用,不能说明某个对外服务的模型真的匹配承诺 示例证明。
验证真实证明时,需要传入配置目录、公钥目录、自行构造的请求文件、token 文件、证明文件以及 commitment ID;commitment ID 必须来自用户信任的一方,不能取自被检查的服务器或随证明发送的文件 验证真实证明 如何验证证明。判断结果时要同时看退出码和最后一行。
运行证明端
证明端只支持特定 GPU 环境:x86-64 Linux 4.14+,CPU 支持 SHA 扩展;一张不执行其他任务的 NVIDIA H100 80 GB;PATH 中有 CUDA 13.2 Update 2(nvcc 13.2.86);gcc/g++ 13 在 PATH 最前;仓库和工作目录位于本地磁盘 硬件与软件。安装编译器的 pip 命令见证明端构建说明 prover 构建。
examples/quickstart-gpu.sh 会构建 cp_verify、cp_commit 和 cp_prove,然后对一个 64 token 请求完成承诺、证明与验证 在 GPU 上证明。它可能超过 15 分钟没有输出,日志写入 quickstart-gpu.log。成功条件是退出码 0,且出现以 quickstart-gpu: all steps ended as expected 开头的行;所有 Compiled by 行应以 release 13.2, V13.2.86 结尾,更新版本的 nvcc 不受支持 GPU 快速开始。
使用约束
- 仓库是研究工件,不维护,不接受贡献 版本与许可。
- 证明端只支持上述 GPU 栈;验证端只需 Linux、bash 和 g++ 13+。
- 完整规模 Maverick 使用合成权重时需要 280 GB 内存;真实权重路线要下载 232 GB 的 4-bit 转换模型、自行准备校准集,并需要 330 GB 内存和 245 GB 磁盘,耗时以小时计 硬件与软件 路线 4。
- 仓库附带的示例证明不能说明任何对外模型的情况,只用于验证验证器能否工作。
- 验证结果要结合退出码与最后一行:2、3、4、15 表示没有结论;
NOT CHECKED只对特定内部失败允许重试一次 验证器退出码。 - 使用需要保密的权重前,先阅读服务指南和运营方义务 Serving 运营方义务。
- CPU 测试套件会覆盖
bin/cp_verify和bin/weight_sums;退出码 3 表示有错误结果被接受,应按 SECURITY.md 报告 测试 SECURITY.md。 - 采用 Apache 2.0 许可;引入的第三方材料保留各自许可。
HotRepo 点评
HotRepo 关于 FlashProve 的记录只有 2026-11-03 的新项目榜快照:142 stars、8 forks,在 11:45 UTC 起约一小时的统计窗口内新增 27 stars 和 2 forks。它没有全部语言日榜名次记录,仅凭这一条快照不足以判断趋势或热度。技术材料里最值得注意的是公开侧和私有侧的成本差异:验证只需在 CPU 上对照可信 commitment ID 做不到两秒的检查,证明则需要独占 H100,完整 Maverick 规模下还要数百 GB 内存。因此它更适合作为验证与协议研究工件,而不是可以随意部署的组件。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。