ISC:zkEVM 与 zkVM:一字之差 天壤之别

作者:?RISCZero高级工程师ErikKaneda??译者:Maxlion

前言

本文将对比zkEVM和zkVM在技术上的差异,并介绍RISCZerozkVM及其即将推出的Bonsai网络。关于RISCZero,它是一个通用zkVM,RISCZerozkVM是一台可验证的计算机,其工作方式类似于真正的嵌入式RISC-V微处理器,使程序员能够像编写任何其他代码一样编写ZK证明。支持Rust和C++编写ZK证明,并支持任何编译为RISC-V的语言。

背景

随着当前智能合约的复杂性增加,dapp越来越先进,区块空间越来越稀缺,运行链上代码的成本也在增加。换句话说,如果你的DeFi逻辑变得计算昂贵,或者你的链上游戏逻辑需要额外的计算能力,你应该考虑使用zkVM或zkEVM,将复杂的应用逻辑移到链外。

在这篇博文中,我想解释在这种情况下,一个字母所能带来的不同。我将从EVM的概述开始,然后是zkEVM,再接着是zkVM。zkEVM允许你在链外传输Solidity应用程序,而RISCZero的zkVM和即将推出的Bonsai网络允许你使用Rust编写可扩展的、与链无关的代码。

PancakeSwap V3已正式上线Polygon zkEVM主网:7月4日消息,PancakeSwap宣布其V3版本已正式上线Polygon zkEVM主网,并作为测试网生态系统合作伙伴加入Linea Voyage的DeFi Week。

此外,PancakeSwap表示,其V3总交易量升至35亿美元,较上个月环比增长3.74%,其中以太坊链上 PancakeSwap V3交易量环比增长74%。[2023/7/4 22:17:41]

快速了解EVM:

EVM是EthereumVirtualMachine的缩写,你可以把它看作是执行Ethereum上所有交易的软件。

孙宇晨:Tron和BitTorrent正探索整合ZKEVM:4月5日消息,孙宇晨在推特上表示,波场Tron和BitTorrent正在探索将ZK以太坊虚拟机(ZKEVM)整合到其生态系统中的方法。

但这一整合并非明确的计划,孙宇晨表示,“需要注意的是,任何整合计划仍处于探索阶段,无法保证未来一定会实施。”[2023/4/5 13:46:06]

每个节点通过运行这个软件来参与以太坊网络。在以太坊中,交易是由代码表示的,其格式称为EVM字节码,代表EVM的指令。大体上,这些指令面向数学计算,来获取区块链信息,以及交换金钱。世界上有许多虚拟机,每一个都有自己的专长。以太坊的虚拟机很关键,因为它更适合应用于去中心化的金融。

什么是"zk",为什么每个人都把它放在其他词的前面?

最近最酷的趋势之一是把"zk"放在单词的前面,这两个字母代表零知识证明。维基百科上有很多例子。如果你对它们不熟悉,我建议此时花几分钟时间读一读零知识证明的例子。

Aave社区关于“在Polygon zkEVM主网上部署V3 MVP版本”的ARFC提案已获投票通过:3月31日消息,据投票页面显示,Aave社区关于“在Polygon zkEVM主网上部署V3 MVP版本”的ARFC提案(ARFC提案通常被视为“温度检查”)以100%的支持率获得投票通过,将进入正式的链上投票。该提案指出部署 Aave V3 开发工作量较小,但为了减少风险,该提案建议限制流入资产,并设置保守的风险参数,使开发和风险服务提供商对zkEVM网络进行更深入的分析。该提案建议只加入三个抵押品(WETH、WMATIC 和 USDC)和一个可借贷资产(USDC),以减少风险。

自2022年10月起,Aave V3已成功部署在zkEVM测试网,运行约 6 个月。zkEVM是Polygon团队开发的L2解决方案,与EVM等效。Polygon zkEVM主网Beta版已于近日上线。[2023/3/31 13:36:54]

长话短说,零知识证明能够实现可验证的计算。你可以把它看作是一种确保哪些计算被完成,以及计算结果是正确的方法。计算机就计算结果达成一致的一种方式是让每台机器运行相同的代码并比较结果。根据不同的计算,这对资源有限的系统来说可能很昂贵。通过使用像RISCZero这样的零知识证明框架,机器可以通过检查证明的数学有效性来确保计算的正确执行,而不是重复运行相同的代码。

Polygon:zkEVM正接受全面审计:12月16日消息,据Polygon在社交媒体透露,目前已启动zkEVM全面安全审计,本次审计将重点关注zkEVM的正确性和稳健性两方面,也是在启动主网之前最后一个测试网需要完成的关键步骤。

据悉,Polygon本次邀请了两家安全公司Spearbit和Hexens负责相关审计工作,涉及Polygon zkEVM内部37个审计组件,确保在以太坊主网上推出时安全可靠。[2022/12/16 21:48:34]

在RISCZero,我们把这些证明称为"收据",在博客的其余部分,我将使用这个术语。每张收据都包括一个加密标识符,表明进行了哪项计算,以及计算的任何公共输出的日志。虽然这可能看起来是一个简单的概念,但它意味着机器可以生成收据来"证明"计算已经完成。

那么,当你把zk放在EVM前面时会发生什么?

术语zkEVM是用来描述在EVM字节码引擎上运行智能合约的软件,并为特定的计算生成收据。这个软件通常可以证明两个或多个收据是有效的,并生成另一个收据。通过使用这种机制,zkEVM可以运行许多交易,并使用一个收据来表示它,这被称为"Rollup"。用Solidity编写的项目可以使用zkEVMs来扩展交易,而不是在链上进行所有计算,在区块链上发布一个单一的收据来代表许多发生在链外的交易。zkEVM有很多类型,如果你想了解它们,你可以在这篇文章中阅读更多。

以太坊Layer2网络zkEVM已接入UniswapV2端口:10月13日消息,以太坊Layer2网络zkEVM发文宣布已完成带有额外的Layer2特定功能的Web3API的开发,并已在UniswapV2上展示了智能合约和前端端口。据官方介绍,这是首个EVM全兼容的zkRollup。用户现在通过uni.zksync.io页面链接钱包,领取部分测试token。UniSync是由MatterLabs推出的UniswapV2的一个端口的代码和前端,并不是隶属于UniswapLabs。[2021/10/13 20:24:35]

zkVM:通过放弃E来解锁可验证的计算

在RISCZero,我们实现了一个零知识虚拟机,而不是一个zkEVM。两者之间的区别在于,"VM",即"虚拟机",比EVM更通用。

在zkVM上,你可以运行几乎所有在计算机上运行的软件,而不是任何可以在以太坊上运行的软件。这种计算机使用RISC-V架构,这是一套用于通用计算的指令。这意味着RISC-V并没有内置钱包地址或其他区块链结构的概念。该指令集主要由在内存位置之间移动数据和对数据进行数学运算的运算符组成。虽然这个指令集可能看起来过于笼统,但并不要求程序员知道如何用汇编语言编程,以便为这个zkVM编写程序。

与EVM相比,这个底层的RISC-V模拟器允许程序员用Rust、C/C++和Go等语言为zkVM编写程序。这意味着zkVM的程序员可以使用别人在该语言的生态系统中开发的相关库。一个例子是,我们可以运行玩Wordle或Where'sWaldo等游戏的程序。然而,我们并不局限于简单的游戏:你可以运行许多其他编译为RISC-V的程序。

运行RISC-V程序有什么用?

如果你想了解更多帮助你写出更好的DeFi应用的框架,你可能会想知道为什么我们正在研究RISCZero这样一个通用的计算框架。

**通过允许用户使用通用语言编写程序,我们打开了在Solidity库之外编写代码的可能性。**这意味着应用逻辑不需要局限于可以用Solidity表达的内容,并允许你写出与链无关的代码。像Rust这样的通用语言允许开发者比那些为特定目的而设计的语言更容易编写不同类型的程序。例如,你可以用Rust编写一个简单的算术计算器,它接受一个数学表达式作为输入,运行数学计算,并将解决方案作为输出返回。如果你增加这个计算器的复杂性,以支持常见的编程语言结构,如变量、循环和函数,你就实现了一个简单的语言解释器,将程序作为输入,运行程序,并将解决方案作为输出返回。这些程序可以被编译成RISC-V并在RISCZero的zkVM上运行。有了Rust,你可以使用现有的crates来为你的应用程序编程,而不是从头开始编写一切。

一个这样的库是Rust上的revmcrate。这个crate是用Rust编写的EVM的一个实现。通过使用这个crate,我们可以在zkVM上运行一个EVM字节码解释器。这意味着你可以在运行在zkVM上的EVM字节码解释器上运行solidity合约!通过这样做,zkVM会产生一个收据,代表运行智能合约的EVM的执行。这在Odra的这篇博文中已经进行了探讨,并被zkPoEx团队用来提高bug赏金。

如何扩展区块链

随着当前智能合约的复杂性增加,许多人发现他们维护的链上代码只会随着他们的开发而增加成本。换句话说,如果你的DeFi逻辑逐渐变得计算昂贵,或者你的链上游戏逻辑需要额外的计算能力,RISCZero的zkVM和即将推出的Bonsai网络允许你使用通用编程语言编写可扩展的链上代码。我在这篇博文中列举了几个例子,我们正处于真正可扩展的计算网络的最开始。如果你想看看这是怎么回事,今天就开始吧,加入我们的社区,注册Bonsai,帮助建立一个去中心化和可扩展的全民互联网。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:15ms0-0:929ms