有效扩展以太坊

有效性汇总和 Cairo VM 的作用 长话短说 有效性汇总是以安全和去中心化的方式增加以太坊吞吐量的最有前途的方法;zkEVM 和 Cairo VM (CVM) 是有效性汇总中使用的两种类型的 VM。 zkEVM 注重以太坊兼容性,但牺牲了性能和可扩展性。 Starknet 中使用的 Cairo VM 优先考虑性能和可扩展性而不是兼容性。 在谈论以太坊扩容时,汇总是今年的热门话题。在各种类型的汇总中,我们认为有效性汇总(VR)(也称为 zk-rollups)是以安全和去中心化的方式增加以太坊吞吐量的最有前途的方法。该扩展解决方案的核心是使用有效性证明进行 可验证的计算。它们的工作原理如下:

运营商不是在以太坊主网上处理每笔交易,而是将交易执行卸载到链下环境。这个链下环境充当第 2 层,即在以太坊之上运行的层。 在处理大量交易后,第 2 层操作员返回要应用于以太坊状态的结果,以及用于验证链下执行完整性的有效性证明。该证明保证批次中的所有交易都是有效的,并由链上验证者合约自主验证。这允许以太坊将结果应用到其状态。 扩展以太坊 有效性汇总 注意:有效性汇总经常被错误地称为零知识汇总,但这并不准确。大多数有效性汇总不使用 ZKP,也不用于确保隐私的目的。 因此“有效性汇总”一词更为准确。

链下虚拟机 在继续之前,我们需要回答的第一个问题是:什么是虚拟机(VM)?简单来说,它是一个程序可以运行的环境,就像Mac运行Windows操作系统一样。它在对某些输入执行计算后在状态之间转换。以太坊虚拟机(EVM)是运行以太坊智能合约的虚拟机。

零知识虚拟机 (zkVM) 是一种程序执行环境,它与程序输出一起允许生成可轻松验证的有效性证明。该有效性证明证明程序被正确执行。当使用术语“zkEVM”时,它通常指的是利用以太坊虚拟机(EVM)并能够证明 EVM 执行的汇总。这个术语可能会产生误导,因为 EVM 本身并不生成这些证明;相反,证明是由单独的证明者机制生成的,该机制以 EVM 执行的结果作为起点。此外,这些证明涉及有效性,而不是隐私,因此它们并不完全是零知识证明。尽管如此,为了保持一致性,我们将在本文中坚持使用传统术语“zkEVM”。

虽然所有有效性汇总的目标都是利用有效性证明来扩展以太坊,但它们在选择虚拟机来执行链下交易方面有所不同。许多 Validity Rollups 选择复制 EVM 的设计(因此被称为“zkEVM rollups”),试图在 L2 Rollup 上复制以太坊。Starknet 使用新的虚拟机——开罗虚拟机(CVM)——它是专门为优化有效性证明效率而设计的。

这两种方法都有自己的优点和权衡,但 zkEVM 以性能换取以太坊兼容性,而 Cairo VM 优先考虑性能而不是兼容性,优先考虑扩展能力。

zkEVM 方法 zkEVM 是一种有效性汇总,其目标是将以太坊体验完全引入第 2 层区块链。它旨在将以太坊开发人员环境复制为汇总。借助 zkEVM,开发人员在编写或将智能合约移植到更具可扩展性的解决方案时,无需更改代码或放弃 EVM 工具(和智能合约)。

这种方法的一个主要缺点是它降低了有效性证明的扩展潜力。由于 zkEVM 致力于与以太坊兼容,因此速度较慢且资源密集。与 CVM 不同,EVM 的设计并未考虑证明效率。这限制了可以提高效率和可扩展性的优化的使用,最终影响系统的整体性能。

EVM 的可证明性 zkEVM 方法的核心挑战植根于 EVM 的原始蓝图——它并不是为了在有效性证明环境中运行而设计的。因此,反映其功能的努力无法释放有效性证明的全部潜力,导致效率低于最佳。这种低效率最终会影响系统的整体性能。EVM 与有效性证明的兼容性受到以下因素的阻碍:

EVM 采用基于堆栈的模型,而有效性证明更有效地采用基于寄存器的模型。EVM 基于堆栈的性质使得证明其执行的正确性以及为其本机工具链提供直接支持变得更加困难。 以太坊存储布局 严重依赖 Keccak 和大型 Merkle Patricia 树,这两者都不利于有效性证明,并且会带来巨大的证明负担。例如,Keccak 对于 x86 架构(我们通常在其上运行 EVM)非常快,但需要 90k 步骤来证明(使用特殊的内置构建)。而 Pedersen(一种 zk 友好的哈希函数)则需要 32 个步骤。即使使用递归压缩,在 zkEVM 中使用 Keccak 也意味着大量的证明者资源,最终由用户付费。 因此,各种 zkEVM 旨在为以太坊工具提供不同级别的支持——zkEVM 与以太坊的兼容性越强,性能就越差。 (有关 zkEVM 类型的更多信息,请跳到文章末尾。)

开罗虚拟机方法 zkEVM 解决方案投入了大量的开发时间来“使 EVM 适用于有效性汇总”,优先考虑兼容性而不是长期性能和可扩展性。还有另一种选择:使用全新的专用虚拟机,并添加对以太坊工具的支持作为顶部的附加层。Starknet就是采用的方法 ,Starknet 是 2021 年 11 月推出的无需许可的 Validity Rollup。Starknet 是第一个在完全可组合网络上提供通用智能合约平台的 Validity Rollup。

Starknet 使用 Cairo-VM (CVM),这是一种同名的高级语言。Cairo-VM 是一款专为高效生成程序执行的有效性证明而设计的 VM。

通过 Cairo(虚拟机和语言),我们有:

  1. 优化有效性证明——每条指令都有高效的代数表示

  2. 一种用于编写可证明程序的现代类 Rust 语言

  3. 高级 Cairo 和 Cairo 汇编(VM 指令)之间的中间表示(Sierra),允许 高效执行 Cairo 代码

开发一种新语言可以让人们根据其想要满足的特定需求进行定制,并为其配备满足以前未满足需求的功能。

开罗和编码多元化 为了创建有关某些计算的有效性证明,首先该计算必须表示为描述该计算的数学约束序列。由于优化计算以提高效率的挑战以及对专用工具的需求,这个过程可能非常棘手。

Cairo语言 最初的设计目的是简化这项任务,让向StarkEx 添加功能和复杂业务逻辑变得更加容易 。Cairo 程序被编译成代数机器代码(数字序列),由单个固定虚拟机执行。在 Cairo 中,生成描述计算的数学约束的整个复杂性(有效性证明的一个棘手问题)被抽象出来,并由固定的约束集(总共少于 50 个约束)捕获。因此,开发人员可以利用有效性证明来扩展他们的应用程序,而无需了解底层数学和基础设施,只需用他们熟悉的语法编写代码即可。

Starknet 注重创新,这体现在其多元化的代码方法中。Cairo 使用STARK获得最佳扩展的能力 并不局限于那些在开罗本地编写合约的人。开发人员可以选择最适合他们的方法:

Cairo 本地代码: 随着 Cairo 1.0的发布,开发人员现在可以使用符合人体工程学且安全的 Rust 语言,这使得编写程序逻辑变得更加容易且不易出错。 Solidity 兼容性: Solidity 开发人员可以编写可由 Cairo VM 使用的代码。这种方法提供了与以太坊类似的开发人员体验,并使 Solidity 智能合约可移植到 Starknet。有两种方法可以实现此目的: 转译: 转译是指将用一种编程语言编写的源代码转换为另一种语言的过程。Nethermind 团队创建了 Warp 转译器,用于将 Solidity 代码转译到 Cairo。Warp 使 Solidity 智能合约可移植到 Starknet,从而有效地使其成为 Type 4 zkEVM。它已被用于转译和部署 Uniswap 合约,只需进行很少的更改。 Starknet 上的 zkEVM: Cairo VM 可用于证明另一个 VM 的执行情况。 Kakarot 是一个在开罗编写的 zkEVM ,可用于在 Starknet 上运行以太坊智能合约。Cairo VM 和 zkEVM 不是竞争方法,我们可以两者兼得,而不是在 Cairo VM 和 zkEVM 之间进行选择! 尽管出现的时间很短,Cairo 仍是 TVL 中第四大最受欢迎的智能合约语言,并且已经获得了超过 3.5 亿美元的收入。

概括 zkEVM 旨在将以太坊环境复制为汇总,并允许开发人员使用熟悉的以太坊工具。然而,这种方法抑制了有效性证明的全部潜力,并且可能会占用大量资源。

Cairo VM 专为有效性证明系统而设计,不受 EVM 的限制。它由一种新的、安全的、符合人体工程学的、受 Rust 启发的编程语言(称为 Cairo 1.0)支持,形成了一个强大的工具,旨在通过使用 STARK Proofs 扩展以太坊来获得最大效率。

看到 Cairo 每周取得的业绩记录以及为开发人员提供的不同选项(例如 Kakarot zkEVM 和 Warp)的增长,令人兴奋。随着 Starknet dApp 投入生产,展示了 Cairo 的强大功能,我们相信它将在未来用于更加雄心勃勃的项目。

由于上述三种 STARK 扩展途径,以及毫无疑问将在未来几个月提供的其他途径,开发人员现在对扩展区块链拥有以前难以想象的控制力。

zkEVM 的类型 Vitalik 将 zkEVM 主要分为四种类型:

类型 1 或完全与以太坊等效: 不要更改以太坊生态系统的任何部分。

类型 2 或完全 EVM 等效: 与现有 dApp 兼容,但对以太坊的设计进行一些更改以加快证明生成速度。

类型 3 或几乎与 EVM 等效: 支持大多数 EVM 操作码,但删除了一些难以在 zkEVM 实现中实现的功能(例如:预编译、哈希函数)。

Type 4 或相当于高级语言: 采用 Solidity / Vyper 编写的智能合约代码,并将其编译为有效性证明友好的语言。

Subscribe to 0xBai_
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.