喵的证明:ZK-VM 工作原理

  • Taiko.xyz
  • 发布于 2023-08-29 20:18
  • 阅读 30

本文介绍了零知识虚拟机(ZK-VM)的工作原理,通过“Proof of Meow”的例子,解释了如何证明程序的正确执行。文章将程序编译成字节码,然后在虚拟机中执行,生成执行跟踪。Prover验证执行跟踪的正确性,Verifier验证Prover生成的证明。

喵的证明:ZK-VM 如何工作

摘要

如果你想知道 ZK-VM 是如何工作的,下面我们用一张图来解释,并以“喵的证明”为例。对于更严肃的人,在第二部分中,我们将重新绘制这张图来证明 EVM 而不是喵。

第 1 节:献给那些热爱小猫咪的人

免责声明: 在此解释中,我们使用一些心理模型来提供“ZK-EVM 如何工作”背后的直觉。 事实上,还有更多的细节和细微之处,请查看 PSE 小组关于 ZK-EVM 的 系列 文章 文章,以便在更技术的上下文中探索它。

对于那些为“喵的证明”而来的人——让我们开始吧。

ZK-VM 代表零知识虚拟机。 它证明程序被正确执行。

  • “程序”可以是任何程序。 在我们的例子中,“meow(喵)”是一个程序。 该程序通常用用户友好的语言编写,如 Solidity、Rust、Noir 等。

  • 为了证明该程序,它应该被编译为字节码。

  • 编译器将源代码(即,由开发人员编写)转换为字节码(即可供计算机读取)。

  • 字节码看起来比高级语言更神秘:

然而,正如我们在上面看到的,字节码只是一组指令,用于向虚拟机解释该做什么。 例如,PUSH1 表示“将 1 字节的数据放入堆栈”,EXP 用于执行求幂,而 SUB 表示减法。 因此,字节码实际上是一组指令,告诉 VM 如何逐步执行程序:先执行这个,再执行这个,然后再执行这个,等等。

  • 当字节码被编译后,它会在 VM 内部执行。 也就是说,VM 获取指令列表并逐个执行它们。 此执行的结果称为“执行轨迹”。

  • 执行轨迹包含为程序的特定调用而执行的 操作码 (opcodes) 列表。

执行轨迹的例子:

  • 证明者 (Prover) 取得执行轨迹并检查 字节码 (bytecode)(的某个指令集)是否被正确执行。 证明者是硬件和软件的组合。 要作为证明者工作,会得到一个约束列表和所需的数据来证明它们。

  • ZK-VM 是一段软件,一个电路,被编译成一组约束。 证明输入包含程序输入和输出。 因此,证明者可以将这些特定的输入放入提供的约束中,并检查它们是否产生特定的输出。 电路的设计使得只有特定的输入集才能满足它。 如果证明者能够满足电路,那么就足以让验证者相信该证明是有效的。

  • 验证者 (Verifier) 是一种验证证明的算法。 它可能是一个智能合约(例如,在 Taiko 中)或由任何人运行的一段软件。

第 2 节:献给严肃的人

对于那些对证明“喵 (meow)”不太感兴趣的人,同样的直觉也可以用来证明 EVM。 正如我们在本文开头所说,“ZK-VM 证明程序被正确执行。” “程序”可以是任何程序,包括节点运行的软件(例如,以太坊节点或 Taiko 节点)。

如果我们证明节点正确运行该软件,这意味着 EVM 也被正确执行。 这正是 ZK-Rollups 使用 ZK-EVM 以更简洁的方式证明区块有效,而不是重新执行所有交易的方式。

加入我们 💗

在我们的 招聘板 上探索空缺职位。

关注我们 🥁

从 Taiko 获取最新信息:

贡献 🤓

在 GitHub 上为 Taiko 做出贡献并获得 GitPOAP! 你也将作为贡献者出现在我们的 README 中。 从 投稿手册 开始。

  • 原文链接: taiko.mirror.xyz/Q0J6Jme...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Taiko.xyz
Taiko.xyz
江湖只有他的大名,没有他的介绍。