美文网首页
Scroll zk-Rollup

Scroll zk-Rollup

作者: 雪落无留痕 | 来源:发表于2021-12-22 10:39 被阅读0次

    Scroll 将构建一个兼容EVM 的zk-Rollup方案,实现三个目标:

    • 完全兼容EVM;
    • 实现Layer-2 proof 外包;
    • 采用新的分层零知识证明方案。

    zkEVM

    有两种在zk-Rollup构建Dapps中的方式:

    • 对不同的Dapps, 构建 application-specific 电路(ASIC);
    • 构建通用的EVM电路, 保证合约执行。

    第一种方式需要开发者设计ASIC, 并且导致可组合性(composibility)问是。第二种方式对开发者友好,实现难度较大。

    随着zk技术的不断进步:

    • 提出了更多符合zk的密码基元,例如Poseidon hash 比SHA256 效率高100倍;
    • 对于通用VM的效率不断提升,例如TinyRAM;
    • 通用zk方案的优化,例如Plonkup等。

    使得构建zkEVM成为可能。

    zkEVM挑战

    构建zkEVM非常困难,主要有以下原因:

    • EVM只能支持有限的椭圆曲线 ,EVM只支持BN254双线性对,很难使用递归证明,因为不支持cyclic 椭圆曲线。
    • EVM字大小为256位,zk基本上素域上,域元素不匹配会导致EVM的每一步增加100个约束条件;
    • EVM有一些特殊的opcodes, 例如CALL, 为电路设计带来挑战。
    • EVM是基于栈的虚拟机,SyncVMCairo 为基于栈的架构,采用专用编译器编译智能合约。
    • 以太坊存储负担比较大,依赖KeccakMPT ,都是非zk友好的。Keccak 比Poseidon电路复杂1000倍。
    • 即使以上都问题都解决了,但是复合起来,仍是一个挑战,实现完全的EVM电路可能仍非常复杂。

    技术进展

    近年来,zkEVM取得一系列的进展:

    • 多项式承诺:过去的zk-snark主要采用R1CS系统,会导致电路膨胀,多项式承诺允许每个约束条件任次数任意;
    • lookup table 和定制门电路: 例如Plookup, TurboPlonk, UltraPlonk, 可以大幅降低电路的负载;
    • 递归证明:先前的方案依赖双性线对友好的曲线(MNT), 导致很大的计算负担,Halo 通过内积避免这个问题;
    • 硬件加速:采用GPU, ASIC/FPGA加速。

    zkEVM 设计

    对于每一个EVM字节码的执行过程为:

    • stack, memory, storage中读取数据;
    • 对读取的数据进行计算;
    • 将计算的结果写入stack, memory, storage中。

    zkEVM的证明需要保证以下过程:

    • 字节码正确载入;
    • 字节码是一个接一个的有效执行;
    • 每个字节码正确执行(包括三个子步骤,即R/W + compuation);

    zkEVM 开发设计需要满足以下要求:

    • 需要设计密码累加器的电路,实现可验证的存储,保证读入的字节码的有效性;

    • 设计电路,链接字节码和真实的执行路径,不同的数据输入,会导致不同的执行路径。

    • 需要实现每个字节码的电路设计,证明(R/W+Computation)过程,同时需要优化:

      • 将R/W 和计算分成两个证明;
      • 为每个字节码设计高次数的定制约束条件。

    zkEVM不仅可以用在L2中,还可以直接用在L1中,类似Mina,实现所有状态转换的一次证明。

    参考

    https://hackmd.io/@yezhang/S1sJ2cEWY

    https://hackmd.io/@yezhang/S1_KMMbGt

    https://github.com/appliedzkp/zkevm-circuits

    相关文章

      网友评论

          本文标题:Scroll zk-Rollup

          本文链接:https://www.haomeiwen.com/subject/umlqqrtx.html