本文探讨了区块链虚拟机(VM)和零知识虚拟机(zkVM)的最新发展,涵盖了WasmVM、MoveVM和Solana VM等多种VM的特性和应用,并深入研究了zkVM在增强隐私、安全性和可扩展性方面的作用。文章还展望了Wasm VM的潜力、VM用例的增加以及zk市场的未来发展。
区块链 VM 和 zkVM 的格局正在演变,并且涌现出许多新参与者。
多个 VM 正在区块链领域中得到应用,例如 WasmVM、MoveVM 和 Solana Virtual Machines (SVM),突出了它们的功能和用例。
最近,zkVM(零知识虚拟机)取得了进展,它在区块链中提供了增强的隐私性、安全性以及可扩展性。
关于最终的想法,Wasm VM 具有强大的潜力,VM 的使用案例数量不断增加以适应应用程序,以及 zk 市场的开发。
虚拟机 (VM) 定义了区块链的应用程序级逻辑。它指定了区块链的状态、状态转换函数、交易以及用户可以通过其与区块链交互的 API。
以太坊虚拟机 (EVM) 一直是区块链领域的先驱和使用最广泛的 VM。 大多数工具都是为 EVM 构建的。 然而,其他虚拟机具有 EVM 缺乏的功能,例如并行处理、对其他主流语言的支持以及嵌入式安全功能。
到目前为止,已经构建了各种 VM,并且目前正在构建中。 本文涵盖以下主题:
“区块链原生 VM”的当前格局
zkVM 的格局,它更面向区块链且具有零知识
这种格局的未来
区块链可以被看作是由区块 B 1、B 2、B 3、...、B n 组成的状态机。要生成一个新区块,一个状态转换函数被应用于区块高度 B i 的状态 S i 以及交易列表 T i。通过这个过程,一个新的状态 S i+1 被创建。
区块链虚拟机 (VM) 提供了一个专门用于这种状态转换函数的存储和执行环境。 这种区块链 VM 旨在基于交易转换状态值并相应地生成区块。 这确保了过去记录的不可变性。
零知识虚拟机 (zkVM) 能够对程序进行可验证的执行,而无需暴露敏感的输入信息。
因此,zkVM 在区块链中提供了改进的隐私和安全性,同时提供了可扩展性和互操作性。 在 zkVM 的情况下,执行跟踪通过 zk 电路生成 zk 证明,尽管每种 zkVM 的具体方法可能有所不同。 这种缺陷需要为每个 VM 的操作码进行自定义开发,并涉及大量的研发。 然而,考虑到过去一年取得的进展,已经取得了重大的进步。
有关更详细的解释,请参阅 Taiko 的 Lisa 的文章:链接。
*此外,本文未专门讨论欺诈证明和乐观 Rollup VM 的原因是,大多数乐观 Rollup VM 在使用时与现有的 VM 几乎没有变化,因此这里没有涵盖它们。
WebAssembly (WASM) 被用作区块链中的虚拟机来执行智能合约。 它是一种底层字节码格式,旨在快速、安全和可移植。 在区块链领域,有几种 WASM VM 可用。
CosmWasm 是一个为 Cosmos SDK 设计的智能合约引擎。 它用 Rust 编写,并使用 WASM VM 来执行智能合约。 CosmWasm 旨在快速、安全和高效。 然而,Cosmwasm 中主要使用 Rust 。
跨虚拟机 (XVM):Astar 基金会创建了跨虚拟机 (XVM) 以实现 Astar Vision。 XVM 允许执行以可以针对 WASM 的语言编写的智能合约,例如 Rust、Go、C++ 等,它们都支持类型安全和正确的错误处理。 借助 XVM,项目可以通过简单的异步功能访问和使用其他区块链
Arbitrum Stylus 是 Arbitrum 区块链中引入的一项新功能。 它简化了使用与 WASM VM 兼容的计算机语言进行智能合约的开发。 Arbitrum Stylus 专注于快速、安全和高效。 它支持多种编程语言,并且其两个虚拟机有可能显着降低成本。 Arbitrum Stylus 是 Offchain Labs 的一项技术实施,旨在增强以太坊 Layer 2 上的智能合约开发。
这些 WASM VM 为在区块链生态系统中执行智能合约提供了一个强大而安全的环境。 此外,这是一种相对较新的趋势。
以太坊虚拟机 (EVM) 对于区块链生态系统至关重要,尤其是在以太坊网络中。 EVM 是一个虚拟机,用于执行用 Solidity 编写的智能合约,Solidity 是区块链中使用最多的编程语言。
EVM 的普及可以归功于其在以太坊网络上创建去中心化应用程序 (dApp) 和去中心化金融 (DeFi) 协议方面的关键作用。 EVM 已成为智能合约执行的标准,许多其他区块链平台也已采用它。 此外,EVM 还支持创建非同质化代币 (NFT),这些代币是可以在区块链上购买、出售和交易的独特数字资产。
总的来说,EVM 在区块链行业的增长和发展中发挥了重要作用,因为它是第一个使用的智能合约区块链。 它的普及可以归因于它能够创建 dApp、DeFi 协议和 NFT 以及其他用例。
MoveVM 是 Aptos、Sui 和 Movement Labs 使用的虚拟机。 它是一种旨在构建安全且适应性强的智能合约以及区块链的自定义交易的编程语言。 MoveVM 处理输入以生成变更集或存储增量作为输出。 一旦共识同意并提交输出,它就会公开可见。
与竞争的区块链编程语言相比,Move 将关键信息(例如代币和智能合约)存储为资源,从而大大提高了语言的安全性。 Move 用于实现 Aptos 的所有关键元素,包括帐户、交易费用、标准库、验证器节点管理和配置。 MoveVM 可以通过适配器层扩展其核心功能。
虚拟机(例如 MoveVM)强制执行区块链平台定义的规则和协议,从而可以安全可靠地执行智能合约。
Solana 虚拟机 (SVM) 作为计算生态系统,用于处理 Solana 平台上的交易和执行智能合约。 为了执行交易,VM 将智能合约的代码转换为验证器计算机系统可解释的结构。 每个验证器节点运行 SVM 的不同实例,从而确保整个区块链中的统一共识。 每个验证器设置中的 SVM 实例接收并解释已部署智能合约传递的状态修改,从而相应地更新区块链。 SVM 由 Sealevel 提供支持,Sealevel 是一种处理引擎,可以通过在运行时指定数据访问模式来实现多个智能合约的有效并行处理。
与以太坊虚拟机 (EVM) 相比,Solana 的 SVM 提供了明显的优势,包括 Sealevel 带来的更高的效率和并行处理能力。 这使得 SVM 可以同时处理大量交易,从而提高 Solana 网络的整体吞吐量。
零知识证明 (ZKP) 对于区块链非常重要,因为它们提供了显着的优势。 它们可以通过提供计算证明来使 VM 更具区块链原生性并与其他网络互操作。 此外,ZKP 通过允许在各方之间安全传输信息而不泄露额外细节来增强隐私。 它们还通过最大限度地减少数据共享来提高可扩展性,通过将计算外包给另一个实体同时保持可验证的结果来刺激可验证的计算,并支持链下扩展解决方案,例如零知识 Rollup 和有效性证明。
在 zkVM 领域中,正在构建许多有趣的项目。
zkWASM 是一个支持 WebAssembly 并生成 ZK 证明的虚拟机。 WASM 的采用将吸引更多的传统程序员进入区块链世界,从而产生对 WASM 合约和传统应用程序和库之间的交互框架的需求。 由于许多现代应用程序都构建在 Wasm VM 上,因此可能有很多用例。 以下是一些 zkWASM 中的项目。
Fluent:它是以太坊的通用 zkWASM 执行层。 它允许开发人员使用他们喜欢的编程语言构建高吞吐量应用程序。 Fluent 构建于 ZK-WASM 之上,ZK-WASM 是一个用 Rust 实现零知识证明 (ZKP) 并将其编译为 WebAssembly (WASM) 的软件项目。
Delphinus Labs:这是一个从论文开始的 zkWASM 项目。 他们一直在使用 SNARK 构建 zkWASM。
lambdaclass 的 zkWASM 实验:他们最近注意到他们已启动一个小型内部团队,以使用 o1js (MinaProtocol) 在 Cairo (Starknet) 中开发 zkWASM。
zkEVM 是一个与以太坊虚拟机 (EVM) 兼容的虚拟机,它支持零知识证明计算。 它旨在执行智能合约,同时利用零知识技术。 ZkEVM 是零知识 (ZK) Rollup 的一个组成部分,零知识 (ZK) Rollup 是以太坊的Layer2扩展解决方案,通过将计算和状态存储转移到链下,从而提高吞吐量。
在过去的一年中,zkEVM 取得了显着改进,许多项目都启动了它们的主网。 (即 zkSync Era、Polygon zkEVM、Linea 等)
来源:The different types of ZK-EVMs
人们一直在努力构建一个通用的 zkVM,这促使了基于 RISC-V 操作码(一种低级 CPU 指令集)的项目的开发。 在该领域中,一个著名的项目是 Risc Zero。
RISC Zero 的 zkVM 最初于 2022 年 4 月发布,它提供了证明任意代码正确执行的能力。 这使开发人员可以使用成熟的语言(如 Rust 和 C++)构建零知识 (ZK) 应用程序。 该版本的发布是 ZK 软件开发的一个重大突破,因为它消除了在构建 ZK 应用程序时构建电路或用自定义语言编写的需要。
通过使开发人员能够使用 Rust 并利用 Rust 生态系统的成熟度,zkVM 使开发人员能够快速创建有意义的 ZK 应用程序,即使没有高级数学或密码学的背景也是如此。
Cairo:CairoVM 是 StarkWare 开发的虚拟机,用于 StarkNet 平台,旨在利用 zk-Rollup 和有效性证明的功能。 它包括一种名为 Cairo 的高级编程语言,该语言易于使用,并且经过优化,可生成 STARK 系统。 Cairo 是以太坊主网上任何区块链的第一个通用冯·诺依曼 STARK 架构,由于指令和数据之间的共享内存,它具有很高的灵活性。
zkMove:zkMove VM 是一个 zkVM,它保证运行时期间的类型安全性,并支持在事务级别进行并发证明,从而加快处理速度。 此外,它还提供客户端证明,以无缝的方式保护用户隐私。
zkLLVM:zkLLVM 是 =nil; Foundation 开发的项目。 它是为构建零知识电路的开发人员提供的编译器。 该项目旨在简化现有和新兴零知识 (zk) 用例的电路定义。
基于 Wasm 的 VM 具有很大的潜力:由于其性能、可移植性、主要公司的广泛采用以及在浏览器之外的扩展,WASM 正在获得越来越多的重要性和采用。 它提供更快的执行时间、与多种编程语言的兼容性,以及潜在的游戏、电子商务、媒体流和服务器端计算应用程序。
应用程序将找到适合它们的 VM。:类似于 Movement Labs 的 MoveVM 和 Eclipse 的 SVM,在低级技术方面正在进行各种实验。 随着区块链中的用例不断增长(希望如此),每个 VM 将根据其特定功能而比其他 VM 具有自己的优势。 例如,MoveVM 提供并行执行,并且被设计为最安全的机器,使其成为金融应用程序的合适选择。
通过 Web2 应用程序的加入,用例的数量将会增加:在区块链行业中,一直在争论和努力寻找合适的用例。 但是,具有 zk(零知识)技术的 VM(虚拟机)(如 WasmVM)可以支持 web2 软件加入区块链,而无需使用新语言编写该软件。
将会开发一个 zk 市场:目前,正在围绕 zkVM 构建多个项目,并且这种趋势可能会增加。 与其由单个实体启动 zk 证明器,不如需要一个市场来计算和生成 zk 证明。 因此,我相信像 =;nil 和 Gauvelt 这样的 zk 市场会受到关注。
感谢 Kate 为本文设计图形。
- 原文链接: 4pillars.io/en/articles/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!