原文标题:《AcomparisonofzkEVMs》
作者:DanielLubarov
编译:Kxp,BlockBeats
随着「zkEVM战争」的升温,公众讨论了许多关于不同zkEVM的优点。但也存在一些错误的信息,因此我们想澄清一些关于PolygonzkEVM以及它与其他项目的比较的事实。
作为Polygon的一名员工,我有偏见,但我会尽力保持比较公正。我主要关注Polygon的zkEVM和zkSyncEra,因为它们已经投入生产使用,并且我不太了解其他zkEVM项目。
zkSync的zkEVM和证明器由100k多行代码组成。我尽力提供准确的摘要,如果有任何不准确之处,请告诉我,我会进行更正。
EVM兼容性
Uniswap发布Uniswap v4代码草稿,并邀请社区提供反馈:金色财经报道,Uniswap宣布发布Uniswap v4代码草稿,以便可以公开构建v4。Uniswap v4的愿景是允许任何人通过引入挂钩(hooks)来做出这些权衡决定。hooks是在池操作生命周期的各个点运行的合约,池可以做出与v3相同的权衡,或者可以添加全新的功能。例如,v4将允许池本身支持动态费用,添加链上限价单,或充当时间加权平均做市商(TWAMM)以随时间分散大订单。此外,v4池将存在于单一合约中,这将使创建矿池的成本降低99%。
Uniswapv4代码将根据Business Source License1.1发布,这将在4年内限制v4源代码在商业或生产环境中的使用,届时它将永久转换为GPL许可证。协议费用机制也将仿照v3。治理层将能够投票决定向任何资金池添加协议费用,但不超过上限金额。[2023/6/13 21:34:27]
PolygonzkEVM直接执行EVM字节码。根据Vitalik的分类,它是一种类型3的zkEVM。很快它将成为类型2;目前我们缺少四个预编译。Scroll也在努力向类型2zkEVM发展。
SafeDAO再次发起启用SAFE代币可转让性的官方提案:6月12日消息,数字资产管理平台Safe(原Gnosis Safe)治理社区SafeDAO 再次发起启用 SAFE 代币可转让性的官方提案。目前 SEP#2 已提交给社区,以实现 SAFE 代币的可转让性,社区投票决定推迟让安全代币可转让。SEP#3 紧随其后,投票决定在启用代币可转让性之前完成一些里程碑。
大约八个月前,SAFE 代币有资格申领,但代币的可转让性作为智能合约的一项功能被锁定。此前SafeDAO关于“开放SAFE可交易性”的提案未获得通过 。[2023/6/13 21:32:49]
相比之下,zkSyncEra使用不同的字节码格式,通过提供编译器来支持Solidity。这使它成为一种类型4的zkEVM:它支持Solidity,但不支持EVM字节码本身。例如Hardhat这样的工具不能直接使用,尽管可以使用zkSync的插件。
0xfc97开头地址一小时前向币安转入975万枚FTM:5月24日消息,据 Lookonchain 监测,0xfc97 开头地址一小时前向币安转入 975 万枚 FTM(价值约 320 万美元)。该地址买入 FTM 的价格约为 0.4 美元,若在转入币安后立即出售则会产生 36 万美元的损失。[2023/5/25 10:37:59]
zkSync认为他们的zkVM更加具有未来性,即它可以更好地与Solidity以外的语言配合使用。但是,他们的VM似乎继承了EVM的许多性能特征,例如其256位字大小。像Miden这样的zkVM可能更具有未来性,因为它是为通用计算而设计的,而不是专注于Solidity。
性能
性能一直是Polygon的重点,我们的zkEVM非常高效。在CPU上运行我们的证明器的成本大约为每笔交易0.000084美元。
数据:Amber向币安发送699万枚GRT,近十日共转入8783万枚GRT:2月6日消息,Praxis Research发推称,链上数据显示,Amber向币安发送了699万枚GRT(93.4万美元),转账路径为:The Graph: Multisig→0xc10a→Amber→0x0ca2→0x5b99→币安。经统计,Amber在2023年1月8日至2月6日期间向币安转移了8783万枚GRT(约合1162万美元)。[2023/2/6 11:50:37]
虽然我们没有找到任何关于zkSync的zkEVM的工作基准,但我们怀疑由于我们非常不同的ZK技术选择,存在着很大的性能差距。
域选择
经过研究多个替代方案,我们选择了所谓的Goldilocksfield,一个二阶巨大素数域?2^64-2^32+1。它的小尺寸和美丽的二进制结构导致了极快的域操作,乘法仅需在现代CPU上花费不到两个周期。
zkSync采用了更传统的方法,使用基于alt-bn128曲线的SNARK。基础域的大小约为254位,域乘法在CPU上需要大约80个周期。
为了感受到这种巨大差异的影响,我们可以看看Celer的SHA2基准测试。在那里,我们的STARK证明器比基于椭圆曲线的证明器快了5-50倍。
alt-bn128的优点在于EVM原生支持它,因此向Ethereum提交证明更简单。在Polygon,我们将最终的聚合证明用alt-bn128的fflonk证明「包裹」起来。虽然我们的方法需要更多的工作,但我们认为这对于不可思议的性能增益来说是值得的。
算术化
区别不止于此。我们的zkEVM基于STARKs构建,但具有现代化的变化。我们有一个主STARK用于CPU,还有其他用于算术、哈希等的STARK。这些表格可以连接,就像我们在RapidUp中描述的那样。这类似于物理CPU,它们经常有协处理器来加速渲染、Crypto或ML推断等密集操作。
以Keccak为例。由于它在EVM应用中被广泛使用,我们设计了一个专门的STARK用于它,使用了一些我们在这里记录的新技巧。设计这样的定制算术化需要大量的工作,但它带来了回报,使我们能够每秒证明数百个Keccak排列。
zkSync采用了我称之为更传统的方法。他们使用基于PLONK的证明器,尽管它支持自定义门,但他们的zkEVM并没有多少使用;大多数计算都是使用一个名为SelectorOptimizedWidth4MainGateWithDNext的通用门进行的。它似乎比vanillaPLONK门稍微强大一些,但仍然局限于像mul-adds这样的简单操作。
值得赞扬的是,zkSync使用了查找参数,这是一种更现代的技术,可以帮助提高像Keccak这样的效率。但是,没有自定义算术化,256位数学、Keccak等等的效率都会大打折扣。
安全性
Polygon非常重视安全性,我们的zkEVM经过了两次独立审计:一次是由Spearbit进行的,另一次是由Hexens进行的。两份报告都可以在这里公开查看。我们还发布了验证部署的说明。
我们不知道zkSync的zkEVM是否经过任何公开审计。zkSync的网站列出了桥接合约的审计,但没有zkEVM本身的审计。
除了审计外,两个项目都有各种「安全备胎」,以提供备用的安全层,但这是一个很深的话题,我在这里不会详细介绍。
L1数据
PolygonzkEVM将所有交易数据发布到L1。在Twitter上存在一些关于此的混淆,有关此的Gas费用请参见Edu的文章。目前,平均交易大小约为120字节,因此每笔交易的Gas费用约为120*16=1920Gas。
zkSync则发布状态差异。恶意的序列化器可能会隐瞒交易数据,但zkSync认为拥有当前状态的trie足以确保安全。这似乎存在争议,因为通常预期交易数据是可用的,并且某些应用程序依赖于此。
查看经过更正的数据后,我们可以发现我们的zkEVM和zkSync的每笔交易Gas费用基本相同。这些数字可能会随着每个链上发生的交易类型的混合而随时间变化,但截至今日,状态差异并没有节省任何Gas费用;两个系统都向L1发送大约120字节的每笔交易数据。
我们计划在这里进行一些优化,但不使用状态差异。交易本身可以进行压缩,降低Gas费用,同时仍能保证交易数据的可用性。敬请期待!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。