本文比较了 MIPS32r2 与 RISC-V 在 zkVM 设计中的架构差异,指出 MIPS32r2 虽然复杂但更契合大规模可验证计算。其高指令密度与成熟生态为 zk 电路带来更短轨迹与更低开销。
在设计 zkVM 时,选择合适的指令集架构(ISA)是基础。虽然大多数新的 zkVM 项目由于简洁性和不断扩大的生态系统而默认采用 RISC-V,ZKM 却有意选择了一条更困难的路线:基于 MIPS32r2 构建。这个决定并不是为了追求新奇,而是为了在大规模可验证计算中选择最合适的工具。MIPS32r2 的复杂性可能会带来工程上的额外负担,但我们认为其架构优势使其更适合高效 zkVM 设计。
MIPS32r2 包含诸如 MOVZ、MOVN 和 MADDU 等指令,可以用更少的步骤编码复杂逻辑。这带来了更短的程序和更小的执行轨迹。相比之下,RISC-V 的 RV32I 基础集是有意保持极简的。表达相同逻辑往往需要多条指令,导致代码和轨迹长度膨胀。
两种 ISA 都使用固定的 32 位指令格式。然而,MIPS32r2 在其整个指令集中保持这种一致性,使得编码和解码更为简单。RISC-V 从干净的 32 位基础开始,但实际应用中往往需要扩展(如 M、A、F),这引入了多样性和实现分歧。
MIPS32r2 提供了对条件执行的内建支持,例如 MOVZ 和 JAL 指令,可以高效地实现分支和函数调用。RISC-V 通过多条简单指令的序列实现类似行为,从而增加了步骤数量,并为电路约束引入更多表面面积。
MIPS32r2 已经在硬件和嵌入式系统中标准化并经过数十年的实战检验。它有固定的规范,使其在长期 zkVM 集成中保持稳定。而 RISC-V 虽然发展迅速,但仍在演化之中,导致不同实现和工具链之间存在碎片化。
MIPS 的高密度指令格式意味着完成相同计算所需的操作更少。这直接减少了执行轨迹的长度和 ZK 电路所需的约束数量。而在 RISC-V 中,步骤数量增加会转化为更长的轨迹和更多需要证明的约束。
MIPS 并非理论化的,它支撑了如 Optimism 的欺诈证明 VM 等系统,并在关键软件中有着悠久的部署历史。RISC-V 虽然在 zkRollups 中初露锋芒,但在安全关键型基础设施中的部署仍处于成熟和统一的过程中。
MIPS32r2 的高密度指令带来更少的轨迹行,从而降低整体证明成本。RISC-V 程序往往需要更多步骤来实现等效逻辑,从而增加了必须在零知识证明中提交和验证的行数。
尽管每条 MIPS 指令由于其复杂性可能带来更高的单条电路成本,但程序所需的指令总数更少。这带来了更低的累计开销。而 RISC-V 的简单操作码需要组合更多操作来表达高级逻辑,从而增加了表示一个程序所需的电路面积。
标准 | MIPS32r2 | RISC-V(RV32I 基础集) |
---|---|---|
指令密度 | 高:复杂指令如 MOVZ、MOVN、MADDU 可减少程序长度。 | 低:极简指令集;需要多条操作才能表达逻辑。 |
编码格式 | 固定 32 位,一致且直接。 | 固定 32 位基础;扩展可能引入差异性。 |
控制流 | 确定性;支持高效条件操作(如 MOVZ、JAL)。 | 确定性;缺乏条件移动操作的直接等价指令。 |
生态成熟度 | 超过 20 年;标准化并经受实战考验。 | 较新;快速演进中,存在生态碎片化风险。 |
与 ZK 电路契合度 | 有利:更少指令 → 更短轨迹 → 更少约束。 | 不利:每个任务步骤更多 → 轨迹更长 → 约束更多。 |
安全与应用溯源 | 已用于 Optimism 的欺诈证明 VM 等系统。 | 已在 zkRollups 中采用,但在部署成熟度上仍存在碎片化。 |
轨迹复杂度 | 较低:更高密度的程序 → 执行轨迹中的行数更少。 | 较高:程序更长 → 为实现等效逻辑需要更多行进行证明。 |
每个程序的电路开销 | 较低:复杂指令尽管单条开销更高,但能减少总步骤数。 | 较高:简单操作需要更多步骤,增加整体电路面积。 |
选择 MIPS32r2 并非一条容易的道路,但却是扩展可验证计算的合理选择。ZKM 做出了更困难的工程决策,从而让基于 zkMIPS 构建的开发者继承一个更高效、更一致、更具可扩展性的 zk 执行基础。
在 zkVM 的架构选择中,ZKM 选择了更具工程挑战的 MIPS32r2,而非主流的 RISC-V。这一选择并非追求新颖,而是基于 MIPS32r2 在指令密度、编码一致性、控制流效率和生态成熟度上的优势。对于零知识证明而言,MIPS32r2 能有效减少执行轨迹长度和电路约束数量,从而降低整体证明成本。尽管每条指令的复杂性提高了单次电路开销,但其减少了总指令数,带来了更优的累计性能。这一架构决策为 zkMIPS 提供了一个更高效、一致且可扩展的基础。
订阅 ZKM 博客以获取 ZKM 的最新研究动态。若对本文有任何疑问,可以通过 Discord 联系 ZKM 团队:discord.com/zkm
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!