
游戏厅捕鱼机漏洞打法(游
撰文:Bryan, IOSG Ventures
过去的 2022 年关于 rollup 主要的讨论焦点似乎都集中在 ZkEVM,但是别忘记 ZkVM 也是另一种扩容手段。虽然 ZkEVM 并不是本文的重点,但是值得回味一下 ZkVM 与 ZkEVM 之间的的几个维度的不同之处:

很多人应该还记得这张图,CairoVM 事不关己游离于 ZkEVM 派系斗争的本质原因是设计思想的不同
在讨论 ZkVM 之前,我们首先思考的是如何在区块链中实现 ZK 证明系统。大致上,有两种方法实现电路 - 基于电路的系统 (circuit based) 以及基于虚拟机的系统 (vm-based)。
首先,基于电路的系统的功能是将程序 (program) 直接转化为约束条件 (constraints) 并送入证明系统 (proving system);基于虚拟机的系统通过指令集 (ISA) 执行程序,在此过程中产生执行轨迹 (execution trace)。这个执行轨迹之后会被映射成约束条件,然后被送入证明系统。
对于一个基于电路的系统,程序的计算由执行程序的每台机器 (machine) 进行约束。而对于基于虚拟机的系统,ISA 被嵌入到电路产生器 (circuit generator) 中,并产生程序的约束 (constraints),同时电路产生器有指令集、运行周期、内存等等限制。虚拟机提供了通用性,即任何机器都可以运行一个程序,只要该程序的运行条件在上述限制范围内。
在虚拟机中一个 zkp 程序大概经历如下的流程:

图片来源: Bryan, IOSG Ventures
优缺点:
以下是目前 L1/L2 中基于电路和基于虚拟机的不同的项目预览:

图片来源: Bryan, IOSG Ventures
虚拟机的设计原则
在虚拟机中,有两个关键的设计原则。首先,确保程序被正确执行。换句话说,输出 (output)(即约束条件 constraint)与输入 (input)(即程序 program)应当正确匹配。一般这是通过 ISA 指令集完成的。其次,确保编译器 (compiler) 在从高级语言转换为适当的约束格式时能正确工作。
1. ISA 指令集
规定了电路产生器的工作方式。它的主要责任是将指令 (instructions) 正确地映射到约束条件 (constraint) 中,这些约束条件随后被送入证明系统 (proving system)。zk 系统使用的都是 RISC( 精简指令集 )。有两种 ISA 的选择:
第一种是自建一个自定义的 ISA(custom ISA),这在 Cairo 的设计中可以看到。一般来说,有如下四种类型的约束逻辑。

自定义 ISA 的基本设计重点是确保约束条件尽可能少,从而使程序的执行和验证都能快速运行。
免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

和全球数字资产投资者交流讨论
扫码加入OKEx社群
industry-frontier