
zkEVM – Hermez 设计思路
了解 Layer2 技术现状(特别是对 zk Rollup 技术)的小伙伴,知道 zk Rollup 目前不支持 EVM,缺失可编程性 / 可组合性,让 zk Rollup 限制在特定场景。zkEVM,通过 zkp 技术证明 EVM 的执行过程是非常有挑战的技术难点。
EthCC 4 会议上 Hermez 团队 介绍 了他们对 zkEVM 的理解和设计:
https://www.youtube.com/watch?v=17d5DG6L2nw
Hermez 团队负责人 Jordi Baylina 比较清晰地给出了 zkEVM 大体的设计思路。本文梳理一下对 zkEVM 设计的理解。抛砖引玉,有理解偏差,小伙伴们可以留言讨论。
虚拟机证明
Jordi 在演讲开头提出:The Ethereum Virtual Machine was not designed to run in a zk-circuit (以太坊虚拟机在设计时并没有考虑 zk 电路证明)。也就是说,zkEVM 天生比较难。当初设计 EVM 的时候并没有考虑到后期还需要 zk 进行证明。在这种情况下,目前有三条路可以走:
第一条:从头设计一种新的虚拟机,该虚拟机对 zk 友好,方便证明。不需要理会 EVM。
第二条:从头设计一种新的虚拟机,该虚拟机对 zk 友好,方便证明。适配当前的 EVM 的开发工具,保持 solidity 兼容。
第三条:直接支持 EVM 指令集,完全兼容 solidity 指令集。
Hermez 团队选择了第三条。其他两种做法在当前的环境下,不太经济。Hermez 给出了选择第三条路的理由:
总的来说,就是兼容性好,安全性高。
总体思路
因为 EVM 在设计当初没有考虑 zk 电路证明,支持 solidity 指令集需要引入中间指令(micro opcode)。这些中间指令比较适合电路证明。这些指令构成 uVM。EVM 需要编译在 uVM 中执行。
众所周知,EVM 有一些变长的指令,比如 CALL,DATACOPY,EXP,CREATE 等等。这些指令天生对电路证明不友好。利用中间指令能相对友好地“表达”出这些指令的逻辑。
对于一个区块中的所有交易,相关的指令可以一个个的执行。执行的模型是:老的状态 + 所有交易指令 -> 新的状态。一个细节是状态的迁移是以区块为单位,并不是以交易为单位的。
多项式承诺
在继续解释细节实现之前,Jordi 简单介绍了一下多项式承诺。多项式有两种表示方式:1/ 系数表示 2/ 点值表示。
在给定一个多项式承诺(cm)的情况下,验证者可以提供随机挑战 r,证明者必须给出多项式在 r 的取值以及承诺证明。随机挑战值 r,可以通过 Fiat-Shamir 算法产生,将交互式的协议变成非交互式协议。在给出多个多项式承诺证明的前提下,通过取值的关系可以确定多项式之间的关系。通过多项式承诺可以证明如下的多项式关系:
多项式相等,多项式取值等等。熟悉 Plonk 或者 Plookup 协议的小伙伴应该知道,这些协议的基础就是多项式承诺。
uVM 的整体框架
uVM 由如下的模块组成:ROM,RAM,Storage 以及各种计算功能模块。Main SM (主状态机)由子模块组成。
需要证明程序的执行状态正确,要保证如下的一些状态正确:
如何证明执行程序正确?
执行程序存储在 ROM 中。将指令和位置进行编码后,得到执行程序的多项式表示 rom (x)。将 Main SM 中的代码执行指令和 PC 进行同样的编码后形成的多项式 instTrace(x)。无论这份代码如何执行(循环的次数,跳转方式),instTrace(x) 中的元素都应该属于 rom(x)。这种从属关系可以采用 Plookup 协议进行证明。
注意的是,instTrace 指的是执行实例的 Trace。虽然,通过 Plookup 能证明 instTrace(x) 中的元素属于 rom(x),但是 instTrace(x) 的执行正确性并没有证明。试想一下 instTrace 中少一两条指令,同样满足从属关系。简单的说,这种从属证明只是证明了 Main SM 和 ROM 状态的一致性。
内存状态正确?
在 Main SM 中的内存的读写情况,应该和内存 RAM 的状态一致。这种一致也是通过 Plookup 协议进行证明。
内存 RAM 本身逻辑是否正确需要额外证明。
存储状态正确?
uVM 的存储是通过 key-value 对实现。所有存储(key-value 对)用 merkle 树进行组织。所以,存储模块包括 merkle 树和 hash 计算。Plookup 协议可以证明多个模块之间的一致性。
整体证明构成
一个程序的执行状态的正确性分割成多个子模块的状态正确性验证。总之,证明包括两部分:1/ 单个模块的逻辑正确 2/ 模块和模块之间的一致性。
证明大量采用多项式承诺。验证这些多项式承诺需要不小的开销。Jordi 提出了多种验证思路:
第一种:多个 Kate 多项式承诺在链上验证。
第二种:多个 Kate 多项式承诺通过 Plonk 电路验证(配对还是在链上验证)。
第三种:多个 Stark 多项式承诺通过 Plonk 或者 Groth16 电路进行验证。
总结
EVM 在设计时并没有考虑到 zk 电路证明。Hermez 提出了 uVM 框架和指令集。作为中间指令集,方便 zk 电路证明,同时可以实现 solidity 指令集。一个程序的执行正确性分割成多个子模块状态的正确性。证明包括单个模块状态的正确性以及模块和模块之间的一致性。为了减少众多的证明单独在链上验证,可以采用电路验证。
比推快讯
更多 >>- 山寨币季节指数报 79,连续四日处于山寨季区域
- 过去 1 小时价值 8016 万美元 ASTER 被提取至 10 个新钱包
- 持仓 ETH 四年地址疑似清仓离场,3 小时前向 Kraken 转入 1757 枚 ETH
- 某巨鲸以均价 53.96 美元增持 52,020 枚 HYPE
- RootData:SIGN 将于一周后解锁价值约 804 万美元的代币
- pump.fun 已累计回购价值超 1.09 亿美元 PUMP 代币
- 分析师:无论未来几年乃至几十年宏观经济形势如何,比特币的价格和普及度都有望增长
- 周大福创始人长孙郑志刚成立 ALMAD Group,将进行数字及虚拟资产投资
- BNB Chain 生态代币普涨,ASTER 24 小时涨超 69%
- 数据:Hyperliquid 平台最大 ASTER 空头仓位浮亏扩大至 179.8 万美元
- 数据:Hyperliquid 平台鲸鱼当前持仓 109.95 亿美元,多空持仓比为 0.88
- 数据:过去 24 小时全网爆仓 1.25 亿美元,多单爆仓 6,382.4 万美元,空单爆仓 6,161.41 万美元
- 某巨鲸四天内以 0.25 美元均价卖出 907 万枚 APX,目前仍持有 535 万枚
- 美参议院民主党人推动就加密货币市场结构法案展开跨党派共同起草程序
- 某鲸鱼在休眠 4 年后向 Kraken 存入 1757 枚 ETH,浮盈 388 万美元
- Arthur Hayes:加密市场有望在美财政部 TGA 账户完成资金补充后进入只涨不跌模式
- 某交易员开立 3 倍 ASTER 多头头寸,目前浮盈超 100 万美元
- 本周 NFT 交易额回升 1.27%至 1.086 亿美元,买卖双方数量涨超 50%
- BNB 上涨触及 1066 USDT 续创历史新高,24H 涨幅 7.17%
- Vitalik:低风险 DeFi 或成以太坊核心收入引擎,类比谷歌搜索业务模式
- 知名 YouTuber MrBeast 首次使用 Aster,存入逾 11.4 万枚 USDT
- MrBeast 投入 11.4 万美元购买 Aster 代币
- OKX Star:团队正力争实现每周一期 Boost
- 两巨鲸因做多 ASTER 获利超 670 万美元
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0045%
- 数据:过去 24h Binance 净流入 3.27 亿 USDT
- 麻吉再次加仓开空 ASTER,爆仓价抬高至 2.62 美元
- BNB 市值超越英特尔,CZ 持仓价值或已超 908 亿美元
- 下周宏观展望:美联储降息步伐或将放缓,小心 PCE 炸毁一切预期
- 昨日 3 倍杠杆做空 ASTER 的鲸鱼现浮亏超 50 万美元
- 各类机构已持有 374 万枚比特币,占总供应量 17.8%
- 某鲸鱼提取 100 万枚 PENDLE,并进行半年的锁仓质押
- 麻吉加仓 ASTER3 倍空单,平均开仓价 1.1376 美元
- 特朗普 100 万美元出售美国居留权
- 数据:近 1.5 亿枚 USDT 从未知钱包转移至 Aave
- 750 万 USDT 购买 ASTER 的鲸鱼/机构疑似在 Hyperliquid 上做空对冲
- Whales Market 将在盘前市场上线 Monad 代币 MON。
- Scam Sniffer:某受害者在签署恶意 EIP-7702 批量交易后损失逾 8 万美元
- Bitdeer 本周挖矿产出 99.5 枚 BTC,比特币总持仓量逼近 2000 枚
- Coinbase CEO:将把 Coinbase 打造为金融超级应用以取代传统银行
- Bitunix 分析师:众院欲终结双重使命冲击货币框架,政治风险放大加密波动
- 某鲸鱼向 Hyperliquid 存入 122 万枚 USDC 开设 5 倍杠杆 PUMP 多单
- 分析师:以太坊质押 ETH 最终批准有望提前至下月
- 某鲸鱼花费 200 万枚 USDT 买入 182.5 万枚 ASTER
- Coinmarketcap:山寨季指数达 74,ASTER、IMX、DRIFT 分列涨幅榜前 3
- 本周美国比特币现货 ETF 累计净流入 8.865 亿美元
- 港股上市公司中环新能源与蚂蚁区块链合作探索新能源数字资产等领域
- 币安:今日 21:00 可领取 Alpha 空投,门槛 200 个 Alpha 积分
- “麻吉大哥”黄立成已开设 3 倍杠杆 ASTER 空头仓位
- 知名加密货币交易员 Wesley 归集超 440 万枚 ASTER 空投,或为 Aster 空投活动最大受益实体
比推专栏
更多 >>观点
比推热门文章
- 山寨币季节指数报 79,连续四日处于山寨季区域
- 过去 1 小时价值 8016 万美元 ASTER 被提取至 10 个新钱包
- 持仓 ETH 四年地址疑似清仓离场,3 小时前向 Kraken 转入 1757 枚 ETH
- 某巨鲸以均价 53.96 美元增持 52,020 枚 HYPE
- RootData:SIGN 将于一周后解锁价值约 804 万美元的代币
- pump.fun 已累计回购价值超 1.09 亿美元 PUMP 代币
- 分析师:无论未来几年乃至几十年宏观经济形势如何,比特币的价格和普及度都有望增长
- 周大福创始人长孙郑志刚成立 ALMAD Group,将进行数字及虚拟资产投资
- BNB Chain 生态代币普涨,ASTER 24 小时涨超 69%
- 数据:Hyperliquid 平台最大 ASTER 空头仓位浮亏扩大至 179.8 万美元