返回资讯中心
外部精选
软件工程
#开发者实时流

FlashProve 发布零知识证明方案,可在单张 H100 上验证 AI 推理所用模型

来源标题:FlashProve: Zero-knowledge proofs of AI inference

FlashProve 0.16.0 允许 AI 提供方在不公开模型权重的前提下,证明某次请求由哪个模型作答。它能在单张 NVIDIA H100 上以完整规模运行 Llama 4 Maverick(1,024 token 上下文),批处理 24 个请求时 prefill 约 110 tokens/秒,协议可靠性已在 Lean 4 中证明。

Hacker News 最新Lwrless2026/11/3 · 5 天前16 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

版本 0.16.0 · 研究性产物:不再维护,不接受贡献。 · Apache 2.0

FlashProve 让 AI 提供方能够证明是哪个模型回答了请求,而无需公开模型的权重。

FlashProve 在单块 NVIDIA H100 上以完整规模运行 Llama 4 Maverick,上下文窗口为 1,024 个 token。在每批 24 个请求时,证明方的 prefill 速度约为 110 tokens/秒(性能)。

该协议的可靠性(soundness)已在 Lean 4 中完成证明。若提供方试图用并非所承诺模型的输出蒙混过关,则会被抓住,除非在 q 次哈希查询后以约 q/2^124 + 2^-101 的概率逃脱。lean/THEOREM.md 中包含该定理及验证方法。

构建 FlashProve、运行它并校验其输出需要漫长的构建过程和大量精确比对。这些工作适合交给编码智能体完成。将你的智能体指向本仓库,指令如下: 阅读 FlashProve 仓库中的 README.md,从“For agents”一节开始,以及 AGENTS.md。以普通(非 root)用户身份在仓库根目录下构建验证器、校验已存储的示例证明,并报告退出码和最后一行。然后告诉我这台机器还能运行哪些其他路线(CPU 上的 toy 证明、H100 上的小模型、完整规模),并在启动其中任何一项之前先询问我。

For agents 以普通用户身份在仓库根目录运行所有操作,绝不要以 root 或通过 sudo 运行。只有安装系统软件包才需要 root,因此请让你的用户来完成。如果 root 是唯一账户,请先创建一个(方法)。另请阅读 AGENTS.md 中关于结果报告的规定。

路线 功能 依赖 耗时

  1. 校验已存储的证明 构建 cp_verify,校验一个示例证明 Linux、bash、g++ 13+;内存低于 2 GB 构建 1–2 分钟,校验 < 2 秒
  2. Toy 证明 在 CPU 上对证明库进行自测 路线 1,外加 make 和 python3;内存低于 1.5 GB 约 1 分钟
  3. 小模型 构建证明方,对一个 8 层合成模型进行承诺、证明和校验 GPU 环境(见下文);10 GB 内存 构建约 29 分钟,运行 23–30 秒 3, 完整规模 以 Llama 4 Maverick 的形状、合成权重、1,001 个 token 进行同样的流程 GPU 环境;280 GB 内存 约 42 分钟
  4. Llama 4 Maverick 下载一个公开的 4-bit 转换版本(232 GB)并证明一个 token GPU 环境、curl、Python 3.13;330 GB 内存、245 GB 磁盘;以及一个你需要先制作的校准集 数小时

GPU 环境(路线 3 和 4)是证明方唯一受支持的平台:

在最小化的 Ubuntu 24.04 上,路线 1 和 2 的依赖为(需要 root): apt-get update && apt-get install -y --no-install-recommends g++ make python3 unzip

  1. 构建验证器并校验已存储的证明 verifier/build.sh

它会在 1–2 分钟内保持静默,然后打印一行以 THE VERIFIER IS BUILT: 开头的内容并以 0 退出。以 build.sh: note: 开头的行是警告:请在报告中引用它。如果你的工具调用超时,请在后台运行构建: echo "build started" >> verifier-build.log; nohup bash -c 'verifier/build.sh; echo "exit code $?"' >> verifier-build.log 2>&1 &

然后轮询 tail -n 2 verifier-build.log,直到最后一行的开头为 exit code。期间不要启动第二次构建。

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。此示例是一个带合成权重的小模型,因此它只能说明验证器可以工作,并不能说明任何关于已部署模型的信息。

W=$(mktemp -d) && LOOK="$W/look" && echo "LOOK=$LOOK" blocks/first_look.sh "${LOOK:?first run the line with mktemp}"

预期退出码为 0,且倒数第三行以 AS EXPECTED: 开头:诚实副本被接受。

examples/quickstart-gpu.sh

该脚本会构建 cp_verify、cp_commit 和 cp_prove,然后对一个 64-token 请求进行承诺、证明并校验。

W=$(mktemp -d) && WORK="$W/example" && echo "WORK=$WORK" prover/examples/run_target_example.sh target_full_f2 "${WORK:?first run the line with mktemp}"

预期状态为 0,出现一行 proof of work:,然后是 YES。进度写入 $WORK/cp_commit.log。 如果内存不足,它会在开始时以退出码 2 退出。

对于真实的 Maverick 权重,请参见路线 4 和 examples/maverick/run.sh。若要对自己拥有的模型进行承诺并提供服务,请参见服务(Serving)以及提供方的职责。在使用必须保密的权重之前,这些页面是必读内容。

bin/cp_verify CONFIG_DIR PUBLIC_KEY_DIR REQUEST_FILE TOKEN_FILE PROOF_FILE -id COMMITMENT_ID

承诺 ID:从你的用户信任的一方获取,绝不要从被检查的服务器或随证明一起发送的文件中获取。已存储的示例是唯一的例外。 请求文件:自行构建(校验证明)。

需要查看的内容:退出码连同最后一行。

退出码 最后一行 含义 0 YES / WITHIN LIMITS: … 在精确匹配 / 裁剪差距下被接受 1 NO: <name> 被拒绝(或本地故障) 5 NOT CHECKED: <name> 无裁决;仅对 internal-stage 或 internal-exception-parFor 重试一次,否则报告 14 NOT-A-VERIFICATION 调用无效;请参见 ---- the call ---- 之后的行 2、3、4、15 命令行或文件有误,或调用不完整;无裁决

verifier/docs/output.md 中有完整的表格。 integrations/check_proof.py 封装了该调用和各项比对。

D=$(mktemp -d) && ./run_suite.py cpu "$D/work"

这些是 CPU 测试。它们会覆盖 bin/cp_verify 和 bin/weight_sums。

绝不要用 sudo、chmod、chown、rm 或编辑源文件来绕过错误。停下来询问你的用户。

除非任务需要,否则不要构建 prover/。

报告确切的命令、退出码和完整的最后一行。对于被接受的证明,还要报告你传入的承诺 ID 以及 covered: 和 result-v1 行。

指南:入门、工作原理、校验证明、服务、证明了什么、权重隐藏、已知限制、性能、条款。

参考:文档、术语表、协议、格式规范、Lean 库、Lean 验证器、测试、论文、SECURITY.md。

示例与检查:已存储的示例、完整规模的证明、被拒绝的证明、故障、集成方案的限制、检查 Lean 库、其结果。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →