zk-EVM 规范

ConsenSys 团队发布了zkEVM规范,描述了zk-EVM算术化的目标:(1)支持所有的EVM 操作码,包含内部合约调用,错误管理和gas 管理;(2)能够执行字节码; (3) 最少的证明时间。

在目前的zk-VM方案中,zkSync将 Yul 编译为 zk-VM 友好的字节码。Cairo 采用定制化的架构适配STARK, 采用Cairo 开发智能合约。

Hermez 和 Scroll Tech 直接解释EVM 字节码,不需要中间的编译器或额外的编译部署。

zk-EVM 全局组织

zk-EVM 由以下几个应用相关的子模块组成:

  • 区块相关的ROM, 包含智能合约的字节码;
  • 主要的执行路径main execution trace, 处理指令,构建栈内存;
  • 应用相关的RAM, 存储,二进制或数值操作码;
  • 指令解码器,分解EVM 操作码。

ROM 的主要目的是将合约字节码转为一系列 可以被 zk-EVM处理的指令。

zk-EVM 概览

Main execurtion trace

主执行路径,或者栈路径,是程序执行的核心。每个指令经过主执行路径,或者被直接处理(PUSH, POP, DUP, SWAP ),或通过bus system 发到其它模块,

RAM 模块

模拟EVM RAM是一项巨大的挑战,有一些指令在RAM 上执行,如 RETURNDATACOPY, CALLDATACOPY, RETURN, BYTECODECOPY涉及复制任意大小的words。 另一方面, 像MSTORE,MLOAD, MSTORE8在32字节的内存中。

RAM模块可以分为两种子模块: 子RAM 和 父RAM, 它们之间的一致性通过Plookup 包含证明保证。

数值运算模块

该模块模拟EVM 256位数值运算,由三个子模块: ALU256, ALU128, ALU64组成,

二进制,字分解模块

它们是两个单独的模块,用于分解域元素成为16位的字,然后执行二进制的操作。

存储模块

存储模块表示 EVM 可寻址的,字粒度的存储。

......

参考

https://ethresear.ch/t/a-zk-evm-specification/11549

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在复习evm之前,首先先做一个主流区块链平台的比对。 一、前情补充 (一)btc和eth的挖矿 eth挖矿需要读取...
    天地一小儒阅读 193评论 0 0
  • 1/2 考前复习 考试说明 1、单选题,10分 2、填空题,30分 3、简答题,24分 4、综合题,36分 复习P...
    Du1in9阅读 5,514评论 8 34
  • 1.早期的计算 1).本系列会了解到位(bit)、字节(byte)、晶体管(transistors)与逻辑门(lo...
    晓先生ol阅读 944评论 0 0
  • 声明:本篇文章是根据bilibili上的一个计算机基础的英文小视频,jean的一层层抽象的方式来讲计算机原理。 机...
    杰_6343阅读 65评论 0 0
  • 序言 很多人都听过计算机是由0、1以及运算组成的,或在计算机基础学习时候也都听说过冯诺依曼设计思想:基于二进制的存...
    日月草阅读 1,041评论 5 3