技术选型表经常写:“SNARK 证明短、STARK 透明;换成后者就自动有零知识与永久可用数据。”这句话混淆了五个不同问题:约束什么计算、采用什么承诺及安全假设、证明/验证开销、哪些值公开、能否拿到被证明计算所需数据。如果连两边要证明的关系都不一样,比较一个 proof 的字节数没有意义;如果只用论文的性能数字比较自己没有安装过的 STARK 工具,读者就无法复核。

先固定同一关系和成本单位

34 已实际执行的一条受限关系是:私有 secret 的 Poseidon 承诺等于公开 commitment,公开 amount <= limit。这不是完整订单转账电路;在现实系统里还要约束哪些状态变化、签名授权与费用必须单独设计。Groth16 把这条关系编译为约束,随后需要与电路相关的 proving key / verification key,并依赖设置材料;本地实验只有单人临时设置。证明者提供见证,验证者持有正确的验证密钥、公开输入和 proof。验证成功仅在相应设置及电路关系正确的假设下说明这些值匹配;业务关系漏了条件时,密码学证明仍可真实有效。

多项式承诺给证明系统提供对多项式的承诺与可验证打开等能力,但不能把“KZG”等同于“所有 SNARK 内部都使用 KZG”,更不能把“短证明”写成“零知识”。某些系统有特定可信设置假设,透明系统常依赖不同的哈希承诺和交互转非交互的假设;具体大小与成本还随域规模、参数、安全级别、电路或执行轨迹、实现以及硬件变化。STARK 的透明设置、可扩展性与后量子假设也要落到选定方案,不能把名称当作正式证明。Groth16 的知识健全性、零知识和可信设置的风险要分开,不可用一次测试通过证明其普遍安全性。

1
2
3
4
5
6
7
业务规则 ─► 精确约束/执行关系 ─► 选定证明系统和承诺构件
│ │
public input / private witness 特定参数与设置
│ │
└──► proof ──► Verify(vkey, public input, proof)

另查:数据有没有发布 / 谁能访问 / 结算链是否确认 / 现实结果

examples/cryptography/E05_proof_costs.mjs 重复运行真实 34 Groth16 工具链并保存可公开的摘要结果:正例 proof 验真、改公开金额仍用旧 proof 时验证失败;返回 proof 的 JSON 序列化长度和包括编译/单人设置/生成/验证在内的整次脚本墙钟。在已加入显式 64 位输入约束的最终电路上,一次冻结环境测得 JSON 文件 803 字节、全流程约 29.3 秒。两个数字都不能与 STARK 的不存在测量对比:JSON 包含文本编码开销,墙钟大部分是每次重新 setup,既不是“最小证明字节”也不是“单次验证时间”。

先按仓库内 examples/cryptography/README.md 完成环境准备;以下命令从仓库根目录执行。

1
2
node examples/cryptography/E05_proof_costs.mjs
node --test examples/cryptography/E05_proof_costs.test.mjs

STARK 真实证明/验证、同等约束的 STARK 电路、安全级别与共同比较平台都 NOT_RUN,stark_proof_executed=false;单人 setup 也不是透明或多方可信设置,transparent_setup_used=false。需要完成对照时应先冻结同一关系和公开输入、同等级安全参数/文档版本,再记录约束或轨迹、证明字节、验证耗时、内存、设置及数据发布方式。34 真证明可以作为该流程的一半,不能靠改表格标题伪装另一半已完成。

练习及答案

画图题: 给出两份 proof:A 证明知道 Poseidon 承诺原像且公开金额小于公开限额;B 证明一批交易满足某个状态转换。若需求是“订单已被付款并且数据可恢复”,两份 proof 各缺什么?

答案: A 电路根本没约束付款、账户余额、链上纳入或数据发布;B 即使真实有效,也必须核对状态转换电路确实约束了预期订单/签名/余额、证明所依的可信初态及结算状态。两者都不让未发布的原始数据凭空可获取,也都不证明现实商品已发货。

实验变更题: 保留 proof,把 E05 复用的公开 amount 改为 43,为何验证失败?若把电路里的 amount<=limit 整段删去,再生成新的证明,在密码学上能“合法证明 amount=1000”吗?

答案: proof 绑定原公开输入,改数值使已有验证关系不成立。删除约束后可以对被削弱的新电路生成合法证明,但它只说明存在满足新关系的见证,绝不表示现实限额判断为真;验证者还必须锁定预期电路与相应 vkey。

资料与导航