织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

时间:2021-08-23 13:51来源:未知 作者:admin 点击:
原文标题:《zkEVM - Hermez 设计思路》 撰文:Star Li 了解 Layer2 技术现状(特别是对 zk Rollup 技术)的小伙伴,知道 zk Rollup 目前不支持 EVM,缺失可编程性 / 可组合性,让 zk Rollup 限制在特

原文标题:《zkEVM - Hermez 设计思路》
撰文:Star Li

了解 Layer2 技术现状(特别是对 zk Rollup 技术)的小伙伴,知道 zk Rollup 目前不支持 EVM,缺失可编程性 / 可组合性,让 zk Rollup 限制在特定场景。zkEVM,通过 zkp 技术证明 EVM 的执行过程是非常有挑战的技术难点。

EthCC 4 会议上 Hermez 团队 介绍 了他们对 zkEVM 的理解和设计。

Hermez 团队负责人 Jordi Baylina 比较清晰地给出了 zkEVM 大体的设计思路。本文梳理一下对 zkEVM 设计的理解。

虚拟机证明

Jordi 在演讲开头提出:The Ethereum Virtual Machine was not designed to run in a zk-circuit (以太坊虚拟机在设计时并没有考虑 zk 电路证明)。也就是说,zkEVM 天生比较难。当初设计 EVM 的时候并没有考虑到后期还需要 zk 进行证明。在这种情况下,目前有三条路可以走:

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

第一条:从头设计一种新的虚拟机,该虚拟机对 zk 友好,方便证明。不需要理会 EVM。

第二条:从头设计一种新的虚拟机,该虚拟机对 zk 友好,方便证明。适配当前的 EVM 的开发工具,保持 solidity 兼容。

第三条:直接支持 EVM 指令集,完全兼容 solidity 指令集。

Hermez 团队选择了第三条。其他两种做法在当前的环境下,不太经济。Hermez 给出了选择第三条路的理由:

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

总的来说,就是兼容性好,安全性高。

总体思路

因为 EVM 在设计当初没有考虑 zk 电路证明,支持 solidity 指令集需要引入中间指令(micro opcode)。这些中间指令比较适合电路证明。这些指令构成 uVM。EVM 需要编译在 uVM 中执行。

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

众所周知,EVM 有一些变长的指令,比如 CALL,DATACOPY,EXP,CREATE 等等。这些指令天生对电路证明不友好。利用中间指令能相对友好地“表达”出这些指令的逻辑。

对于一个区块中的所有交易,相关的指令可以一个个的执行。执行的模型是:老的状态 + 所有交易指令 -> 新的状态。一个细节是状态的迁移是以区块为单位,并不是以交易为单位的。

多项式承诺

在继续解释细节实现之前,Jordi 简单介绍了一下多项式承诺。多项式有两种表示方式:1/ 系数表示 2/ 点值表示。

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

在给定一个多项式承诺(cm)的情况下,验证者可以提供随机挑战 r,证明者必须给出多项式在 r 的取值以及承诺证明。随机挑战值 r,可以通过 Fiat-Shamir 算法产生,将交互式的协议变成非交互式协议。在给出多个多项式承诺证明的前提下,通过取值的关系可以确定多项式之间的关系。通过多项式承诺可以证明如下的多项式关系: (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容