Cointime

扫码下载App
iOS & Android

zkEVM与zkVM:一个字母就能带来巨大的区别!

Erik Kaneda-高级软件工程师

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

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

EVM的快速概述:

EVM是Ethereum Virtual Machine的缩写,你可以把它看作是执行Ethereum上所有交易的软件。每个节点通过运行这个软件(如geth的安装启用)来参与以太坊网络。在以太坊中,交易是由代码表示的,这个格式被称为EVM字节码,代表EVM的指令。在很大程度上,这些指令适用于数学计算、获取有关区块链的信息以及兑换货币。世界上有许多虚拟机,每一个都有自己的专长。以太坊的虚拟机很关键,因为它更专业于去中心化的金融(DeFi)。

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

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

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

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

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

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

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

在RISC Zero,我们实现了一个零知识虚拟机(zkVM),而不是一个zkEVM。两者之间的区别在于,"VM",即 "虚拟机",比EVM更通用。在zkVM上,你可以运行几乎所有在计算机上运行的软件,而不是只有可以在以太坊上运行的软件。这种计算机使用RISC-V架构,这是一套用于通用计算的指令。这意味着RISC-V并没有内置钱包地址或其他区块链结构的概念。指令集主要由在内存位置之间移动数据并对数据进行数学运算的运算符组成。 虽然这个指令集可能看起来过于通用,但并不要求程序员知道如何用汇编语言编程来为这个 zkVM 编写程序。

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

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

如果你选择阅读这篇文章是因为你想了解更多可以帮助你写出更好的DeFi应用程序的框架,你可能会想知道为什么我们正在研究这样一个通用的计算框架。我们通过允许用户使用通用语言编写程序来打开了在 Solidity 库之外编写代码的可能性。这就意味着应用逻辑不需要局限于可以用Solidity来表达的内容,并允许你写出与链无关的代码。与为特定目的而设计的语言相比,像 Rust 这样的通用语言允许开发人员更容易地编写不同类型的程序。例如,你可以用Rust编写一个简单的算术计算器,它将一个数学表达式作为输入,运行数学计算,并将解决方案作为输出返回。如果你增加这个计算器的复杂性,以支持常见的编程语言结构,如变量、循环和函数,你就实现了一个简单的语言解释器,它把一个程序作为输入,运行程序,并把解决方案作为输出返回。这些程序可以被编译成RISC-V并在RISC Zero的zkVM上运行。有了Rust,你可以使用现有的crates来为你的应用程序编程,而不是从0开始编写一切。

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

如何扩展区块链

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

评论

所有评论

推荐阅读

  • Cointime 5月4日要闻速递

    1. Base链上Gas总消耗量突破1万枚ETH

  • 普华永道中国与香港Xalts达成合作拟探索区块链和代币化商业机会

    据普华永道香港官方网站披露,普华永道中国(PWC China)已与香港Xalts达成合作拟探索区块链和代币化商业机会,Xalts是一家代币化可编程资产基础设施提供商,助金融机构以高效且可扩展的方式实施代币化和可编程资产应用,据悉普华永道与Xalts之间的合作正值香港金融管理局 (HKMA) 推出批发央行数字货币 (wCBDC) 试点项目 Project Ensemble之际,普华永道称已看到了可编程资产为金融服务行业带来重要创新的巨大潜力,包括批发支付和贸易融资。

  • Blockchain Asset Management宣布为合格投资者推出一支专属区块链基金

    规模达1亿美元的加密货币基金Blockchain Asset Management宣布推出为合格投资者推出一支专属区块链基金,目前暂未披露该基金的具体募资金额,但据称其规模已达到“8位数”,即千万美元级别。此外,新基金的投资门槛为10万美元,并要求所有投资者都符合认可标准(年收入超20万美元,净资产超100万美元)。

  • 雷诺旗下BWT Alpine F1车队宣布与ApeCoinDAO达成合作

    雷诺旗下BWT Alpine F1车队在X平台发文宣布宣布与ApeCoinDAO达成合作,只在将APE引入Alpine F1生态系统,并联合全球代币持有者,以及推出首ApeCoin启发的周边商品和数字资产。据悉根据双方合作内容称,未来BAYC NFT或将可以穿上带有Alpine车队LOGO的装备和服饰。

  • 四月Solana链上NFT销售额略高于1.5亿美元,创年内迄今最低水平

    据Cryptoslam数据显示,四月Solana链上NFT销售额略高于1.5亿美元,达153,304,602.45美元,创2024年内迄今为止的最低单月纪录,上月Solana链上NFT交易量约为218万笔,同样创下年内迄今最低水平,其中独立卖家地址约25万个,独立买家地址约48.7万个。

  • BTC突破63000美元

    行情显示,BTC突破63000美元,现报63014.9美元,日内涨幅达到6.11%,行情波动较大,请做好风险控制。

  • Base链上Gas总消耗量突破1万枚ETH

    据链上分析平台Dune Analytics数据显示,Base链上Gas总消耗量已突破10000枚ETH,本文撰写时达到10,839.5062枚ETH(按照当前价格计算超过3360万美元),平均Gas使用金额约0.1754美元(0.000059661 ETH),总区块数量触及1341万个,每个区块的平均交易量约为14.63笔。此外,数据显示Base链上总交易量已超过1.962亿笔,用户数量超过836.6万,用户交易量已超过1.84亿笔,本文撰写时达到184,403,451笔。此外,Base链上已创建的合约总量已超过了6400万份,当期触及64,056,573份。