跳到主要内容

刚刚发生了什么

这一页是把 Quickstart 的操作放回完整流程里看一遍。你刚刚跑通的是最短路径;现在要做的是把这条路径放回完整生命周期里,看清你提交了什么、看到了什么事件、还有哪些阶段没有展开。

先看发生了哪些步骤。你准备了 proof、vk 和 public inputs,然后把它们提交到 zkVerify。链上验证成功后,会触发 ProofVerified 事件,这就是你在 Quickstart 里看到的“验证成功”。从生命周期角度看,这对应的是“Proof 生成”和“Verify”两个环节,中间的编译、setup、witness 都在你的 proving 工具链里完成了,只是你在 Quickstart 里没有展开。

下面这张图把 Quickstart 和完整生命周期的关系对齐一下:

再看角色分工。Producer 负责写电路或程序并定义 vk 的来源,这一步在 Quickstart 之前就完成了。Prover 是生成 proof 的一方,通常在用户或客户端侧完成。Verifier 是 zkVerify,它接收 proof、vk 和 public inputs,验证成功后产生 ProofVerified 事件。

可以用一个简单的责任表格记住这三类角色:

角色负责什么Quickstart 里在哪出现
Producer定义电路/程序与 vk在你准备 vk 时隐含出现
Prover生成 proof在你提交 proof 前完成
Verifier验证 proofzkVerify 上触发 ProofVerified

最容易误解的是把 zkVerify 当成 Prover。症状是一直在寻找“生成 proof 的接口”。原因是把验证层当成证明层。正确理解是:zkVerify 只验证,不生成 proof。

下一章会把“Proof 生成之前发生的事情”和“验证之后发生的事情”讲清楚,这样你能把 Quickstart 放回到完整系统里。