zkEVM 和硬件分析
ChainTimes快链
2023-02-15 21:01
订阅此专栏
收藏此文章


 22023 年是 zk 的爆发元年,已经有些说法了。本文我们将重点放在探讨 不同类型的 zkEVM 以及 ZKP 的硬件赛道等内容上,将逐一进行分析。上周由 ChainTimes 快链发起的关于 ZK 主题的投研会上,大家踊跃交流,本文将梳理由 MetaStone Capital 分享的关于 zkEVM 和硬件的分析。


01

关于 zk—rollup

Rollups 作为一种以太坊可扩展性解决方案,可以通过其本身网络将交易进行捆绑并压缩发送到以太坊链上进行验证,通过一次性验证该网络上的多笔交易增加网络的运行效率,也就是从而增加了交易的执行数量,进而实现扩容。


通过 Rollups 本身一次性执行的交易数量,可以提高以太坊一直诟病的 TPS 问题,在基于以太坊本身安全性的前提下,将可执行的交易数量提升数个量级


zkRollups 可以通过零知识证明技术将隐私性与解决方案结合,也就是允许一方向另外一方证明某件事而不用透露证明该方的信息,从而实现隐私性。当然并不是所有的 zkRollups 都会利用零知识技术的隐私属性。同时相比于 L1 来说,zkRollups 有更强的规模经济效应,作为 L1 的以太坊来说,一般它的成本和处理速度不太欢迎越来越多的用户使用,而对于 zkRollups 来说,更多的交易用户会使得网络的使用成本进一步下降,实现最初的目的。


在 ETH 上应用 zk—rollup 明显的好处有:

1.共享以太坊共识层的安全性

2.解决区块链不可能三角中的扩展性问题

3.巨大的网络效应



02

EVM 与 zkEVM 的工作原理

01

EVM 的工作原理

智能合约字节码从 EVM 的存储中加载,并由 EVM 上的点对点节点执行。

EVM 操作码与 EVM 状态的不同部分进行交互并执行读写操作(包括内存和栈)

EVM 操作码在返回新值之前对从状态存储中获得的值执行计算,完成状态上的转换


02

zkEVM 的工作原理

即生成零知识证明对上述各个过程进行验证,生成有效性证明,提交给 ETH 验证者合约进行验证。验证包括看是否从旧状态获取正确值,是否计算中发生了偏差等等生成有效性证明的过程也是进行零知识证明电路的过程



3

zkEVM 的执行程序

01

zkEVM 的基础条件,需要有一个兼容 evm 的虚拟进行操作码执行,运行智能合约
02

有一个验证电路生成零知识证明。使用前状态、交易输入和后状态信息作为输入来完成证明生成过程

03

将有效性证明提交到 ETH 验证合约进行验证



4

Scroll 与 zkSync、Starknet、Polygon 的兼容性问题

因为 EVM 在最初设计时并没有考虑到 zkp 计算的问题,所以想讲 zk+zvm 结合起来需要两种方式:


  1. 编译方式 


starknet 本身用的开罗语言(零知识证明系统语言),如果开发者想将 eth 上应用搬到 starknet 上来,需要借用 starknet 团队的编译器进行编译,允许使用 Solidity 编写的项目将其代码库“一键”翻译成 Cairo。


zksync 也是在语言上进行编译,通过中间语言 YUL,在使用 LLVM 框架,将 solidity 合约字节码编译为 YUL 语言,再通过 YUL 字节码编译为 zksync ZKEVM 可执行的字节码集


polygon 则是在字节码上进行编译,将开源的 solidity 字节码编译为 polygon uvm 可执行的微操作码,实际上也算更换了 evm 原生操作码。但进步的点在于从字节码级别完成 evm 的兼容



2.scroll 这种为 evm 操作码设计零知识电路的过程


Scroll 会将智能合约在 EVM 上执行,把智能合约字节码传到存储器中,用操作码一个一个执行,得到默克尔树,给每个树定制一个电路。每一个 opcode 都有一个电路,组合起来,没有转译器步骤,不需要修改任何东西。


字节码级别的 zkEVM 对于开发者友好:低门槛部署属于一点,另外不将 Solidity 代码转换成另一种编码语言,开发者能够直接使用常见的以太坊开发工具、库、 钱包(如 MetaMask)、市场和调试器,这一点是最为关键的。相反使用语言级别兼容会对开发者使用 eth 工具,迁移以太坊生态应用产生一定困难,兼容性会较差一些。



除了兼容性以外,如何比较 ZK-EVM:


在开源的环境下,整体的 Prove system 各个 ZK 方案中区别很小, 差别不大,微弱影响 Prove 的效率。工程方面在证明复杂度、验证复杂度、通信复杂度等方面去衡量, 还有电路整体开发思路,整体无法评断最终谁会胜利。因为网络效应、社区文化、运营推广、财富效应、开发者支持等都是生态最重要的要素。



5

目前 ZKP 的类型

要想通过 zk 证明某个计算,通常需要将传统程序翻译为 ZK-friendly 程序。

计算越复杂,加上对 zk 不友好,生成 proof 的过程也就越慢,某些运算并不是 ZK 友好的(sha/bitwise 运算),计算对 zk 友好的话,其速度也就越快,proof 系统目前有如PLONKSpartanSTARK。这些 proof system 根据输入,可输出 a proof。


但目前生成 proof 基本的瓶颈无非是二者之一,所有 proof system 基本包含 FFT 和 MSMs 两种算法,而目前两种算法速度受限制的主要因素取决于硬件中的成本和带宽成本


目前的硬件类型主要有以下三种 GPU FPGA ASIC,当前 ZKP 仍处于早期发展阶段,对系统参数的标准化工作仍然很少(如 FFT 的 width 或 element 的 bit-size),对 proof system 的选型也无相关标准。

基于以上因素,对于 ZKP 场景,FPGA 有 2 个核心属性,使得其更优于 ASIC:

01Write multiple times” VS “Write once”

ASIC 上的业务逻辑是 write-once 的。若有任何 ZKP 逻辑修改,需重头开始。FPGA 可在 1 秒内 re-flash,支持 re-flash 无数次,这就意味着可在 运行不兼容 proof system 的不同链之间 复用相同的硬件(如想要跨链 extract MEV),并随着 ZK“meta”的变化而灵活地适应。


02更健康的供应量:

ASIC 的设计、制造和部署通常需要 12 到 18 个月或更长时间。而 FPGA 的供应链是健康的,如 Xilinx 这样的领先 FPGA 供应商,允许从网上批量下单(即无需其它联系)并在 16 周内到达。这允许以 FPGA 为中心的运营在其产品上有更紧密的反馈回路,并通过购买和部署更多 FPGA 来扩大其运营。


并且我们还预计 FPGA 的性能将优于 GPU,主要有两个原因:

1)硬件开销:顶级 FPGA(领先的处理节点、时钟速度、能效和内存带宽)比顶级 GPU 便宜约 3 倍。全球对 GPU 的需求进一步加剧了这一问题。

2)功耗效率:FPGA 的能耗要优于 GPU >10 倍,主要原因在于 GPU 需要连接到 a host device,这通常将耗费大量电量。



我们认为市场上未来的赢家将是:FPGA > ASIC(或 GPU)。若未来仅有一个或少量 ZK L1 或 L2 方案占据了主导规模,ZK proof system 将稳定围绕在某单一实现,则可能 ASIC 将超过 FPGA。但是目前来看,数年内不会有该情况发生。


比特币矿商的收入超过 150 亿美元,以太坊矿商的收入刚刚超过 170 亿美元。零知识证明最终会成为网络上计算完整性和隐私的事实媒介,在这种情况下,ZK miners/provers 的机会可能与工作量证明采矿市场的规模相似。



ZKP 速度较慢,需要硬件加速才能实现复杂计算。我们认为,对 ZK 硬件加速最重要的技术是 FPGA,而不是 GPU(受限于成本和能效)或 ASIC(受限于其不灵活和迭代周期长)。



快链投研分享会也将持续进行,欢迎各地小伙伴一起投研分享探讨。

END

关注快链


更多信息添加小助手微信,进社群嗨聊资讯。

WeChat:18655860425

Twitter:@asteria-1105

Telegram: https://t.me/kuailian8

Discord:https://discord.gg/V2qMKkzCBS




【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

相关Wiki
ChainTimes快链
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开