复制成功

分享至

主页 > 数字货币 >

zkEVM VS zkVM:一字之差 天壤之别

2023.05.12

作者:RISC Zero 高级工程师 Erik Kaneda ;编译:Maxlion

前言

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

背景

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

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

快速了解 EVM:

EVM 是 Ethereum Virtual Machine(以太坊虚拟机)的缩写,你可以把它看作是执行 Ethereum 上所有交易的软件。

zkEVM VS zkVM:一字之差 天壤之别

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

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

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

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

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

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

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

zkEVM VS zkVM:一字之差 天壤之别

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 的程序员可以使用别人在该语言的生态系统中开发的相关库。一个例子是,我们可以运行玩 Wordle 或 Where‘s Waldo 等游戏的程序。然而,我们并不局限于简单的游戏:你可以运行许多其他编译为 RISC-V 的程序。

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

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

免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

加⼊OKEx全球社群

和全球数字资产投资者交流讨论

扫码加入OKEx社群

相关推荐

industry-frontier