# ProveKit证明文件为什么校验不通：核release、产物配对与公开输入

整理：链小知（AI 辅助）
资料核对日期：2026-10-14
引用地址：https://lianxiaozhi.com/tools/guides/provekit-artifact-release-public-input-mismatch-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

用既有非敏感构建日志定位v1.0.2/main、路径和递归产物错配，不生成或提交证明。

## 使用工具
- [ProveKit](https://lianxiaozhi.com/tools/provekit) · [官方入口](https://docs.provekit.org/)

## 前置条件
- 准备原release/commit、Noir/Rust工具链与lockfile、文件名/摘要/大小、命令参数和原错误；私人witness、Prover.toml内容、证明和身份文件不提交。
- 方法依据2026-10-14匿名读取的官方正文；只核已有脱敏材料，不登录、安装、连接钱包、生成证明、请求业务服务、签名或操作资金。

## 1. 固定release与实际host路径

当前文档以v1.0.2 tag和Noir v1.0.0-beta.26为可复现接口；v1 branch会前进，main可能破坏key/proof/recursive/API格式。CLI/Rust在作者文档检查通过，但WASM交叉验证未通过、iOS/Android仍pending，不能从C ABI/平台表就认定全宿主可用。

核对结果：原release/commit/toolchain/host有记录；未按当前main反推旧包。
依据：[ProveKit：v1.0.2版本与宿主兼容状态](https://docs.provekit.org/reference/project-status/)
依据：[ProveKit：CLI/Rust、server与递归路径验证边界](https://docs.provekit.org/integrations/overview/)

## 2. 按产物角色读原命令路径

prepare产生.pkp及.pkv，prove消费.pkp+Prover.toml产proof.np，verify消费.pkv+proof。核实际输出路径而非仅扩展名。v1.0.2没有prepare --hash/--witness-mode，原参数拒绝不是证明无效。

核对结果：产物生产/消费对应同电路和路径，参数解析错误与验签失败分开。
依据：[ProveKit：显式文件路径、public inputs与recursive export](https://docs.provekit.org/e2e/generate-artifacts/)
依据：[ProveKit：分支/文件/证明错误定位](https://docs.provekit.org/troubleshooting/common-errors/)

## 3. 按改动范围核同一代产物

改变分支、commit、lockfile、工具链、电路或package应重新配对相关keys和proof；仅prover inputs变更通常更新proof而非keys。原.pkv不得配另一.pkp/电路/release的proof。缺文件、错误JSON、ABI/input编码与真正verify false分开保留，未取得原verify记录不能称已验证。

核对结果：产物来源和改动范围明确，缺失/格式错未补成有效或无效证明。
依据：[ProveKit：产物配对与生命周期](https://docs.provekit.org/concepts/artifact-lifecycle/)
依据：[ProveKit：v1.0.2版本与宿主兼容状态](https://docs.provekit.org/reference/project-status/)
依据：[ProveKit：分支/文件/证明错误定位](https://docs.provekit.org/troubleshooting/common-errors/)

## 4. 将公开输入与应用授权分别核

对已有show-inputs输出核public input编码及应用期望；proof通过只能证明相应verifier key的约束满足，应用仍需判断输入是否授权该动作。输出文件存在、CLI exit0、HTTP成功和应用已接受不是同层结果；没有相关记录保留未知。

核对结果：原公开输入、密码学校验和应用授权结论分列，不把证明存在当身份/操作许可。
依据：[ProveKit：显式文件路径、public inputs与recursive export](https://docs.provekit.org/e2e/generate-artifacts/)
依据：[ProveKit：产物配对与生命周期](https://docs.provekit.org/concepts/artifact-lifecycle/)

## 5. 递归导出按版本和实际验证边界收尾

v1.0.2 generate-gnark-inputs消费精确.pkp+proof.np并产params_for_recursive_verifier及r1cs.json；变更proof/key须重新配对。文档检查只生成递归输入，未运行Go proving/verification，server也未端到端验证；不能以“支持Groth16”保证某链合约可接受或所有WHIR承诺可传给wrapper。

核对结果：原recursive输入与来源严格关联，导出、Go验证、链上接受各保留证据边界。
依据：[ProveKit：显式文件路径、public inputs与recursive export](https://docs.provekit.org/e2e/generate-artifacts/)
依据：[ProveKit：CLI/Rust、server与递归路径验证边界](https://docs.provekit.org/integrations/overview/)
依据：[ProveKit：产物配对与生命周期](https://docs.provekit.org/concepts/artifact-lifecycle/)

## 常见错误
- 不同分支/版本格式不可自动兼容，public inputs也不能默许改字节。
- 宿主bindings存在、示例benchmark和成功导出不等实际业务验证或链上验收。

## 完成检查
- 形成按产品、身份、时点和原状态分列的检查表，缺证保留待核。
- verification=documentation；具体客户端、账户、证明验证、网络状态及资金结果未实测。

## 相关知识
- [原始、解码和整理后的链上数据有什么区别？](https://lianxiaozhi.com/learn/raw-decoded-curated-data)

## 官方依据
- [ProveKit：v1.0.2版本与宿主兼容状态](https://docs.provekit.org/reference/project-status/)
- [ProveKit：CLI/Rust、server与递归路径验证边界](https://docs.provekit.org/integrations/overview/)
- [ProveKit：显式文件路径、public inputs与recursive export](https://docs.provekit.org/e2e/generate-artifacts/)
- [ProveKit：分支/文件/证明错误定位](https://docs.provekit.org/troubleshooting/common-errors/)
- [ProveKit：产物配对与生命周期](https://docs.provekit.org/concepts/artifact-lifecycle/)
