复制成功

分享至

主页 > 数字货币 >

详述有效性证明Rollup和Cairo VM技术特性

2023.06.15

来源:Scaling Ethereum Efficiently;编译:Starknet 中文社区

概要

  • 有效性证明 Rollup 以安全和去中心化的方式增加以太坊吞吐量,也是最具潜力的方式;zkEVM 和 Cairo VM(CVM)是有效性证明 Rollup 中所使用到的两种虚拟机 (VM) 类型。

  • zkEVM 专注于以太坊兼容性,但牺牲了性能和可扩展性。

  • Starknet 采用的 Cairo VM 将性能和可扩展性置于兼容性之上。

  • Rollup 是今年关于扩展以太坊的热门话题。在各种类型 Rollup 中,我们相信有效性证明 Rollup(以下简称 VR,或称为 zk-rollup),是以安全和去中心化的方式增加以太坊吞吐量,最有希望的扩容方案。这种扩容方案的核心是采用有效性证明进行可验证计算。下面来了解其运行原理:

  • 和在以太坊主网上处理每笔交易不同,运营者将交易放到链下环境执行。链下环境就是 L2,即在以太坊之上运行的操作层。

  • 在大批量交易处理完成后,L2 运营者将结果返回至以太坊状态中,同时还有一个有效性证明用于验证链下执行的完整性。该证明保证同一批次中的所有交易都有效,并由链上验证合约自主验证。该操作允许以太坊将结果应用于其状态。

  • 详述有效性证明Rollup和Cairo VM技术特性

    有效性证明 Rollup

    请注意:有效性证明 Rollup 常被错称为零知识证明 Rollup (zkRollup),这并不准确。大部分有效性证明 Rollup 不采用零知识证明,也不用于确保隐私。因此,术语「有效性证明 Rollup」更准确。

    链下虚拟机

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

    零知识虚拟机(zkVM)是程序执行环境,与程序输出一起生成可轻松验证的有效性证明。有效性证明用于证明程序已正确执行。当使用「zkEVM」一词时,通常是指运行以太坊虚拟机(EVM)并能够证明 EVM 执行的 Rollup。这个术语可能会造成误会,因为 EVM 本身无法生成这些证明;相反,证明是由一个单独的证明器机制产生,该机制将 EVM 的执行结果作为其起点。此外,上述证明都是与有效性相关,而与隐私无关。因此,准确来说不能称为零知识证明。而为了保持一致性,在本文中仍使用传统术语「zkEVM」。

    尽管所有有效性证明 Rollup 都旨在采用有效性证明来扩展以太坊,而不同方案在 VM 执行链下交易方面做出了不同选择。许多有效性证明 Rollup 选择复制 EVM 设计(因此称为「zkEVM rollup」),尝试在 L2 rollup 上复制以太坊。Starknet 采用的是 Cairo VM(CVM),是专为优化有效性证明效率而设计的全新 VM。

    上述两种方式各有利弊和取舍,但 zkEVM 牺牲性能以求以太坊兼容性,而 Cairo VM 将性能置于兼容性之上,优先考虑可扩展能力。

    了解 zkEVM 运作方式

    zkEVM 是一种有效性证明 Rollup,旨在 L2 区块链上完全引入以太坊体验。目的是将以太坊开发者环境复制到 Rollup 中。借助 zkEVM,开发者编写或移植智能合约到扩容方案时,无需调整代码或弃用原本的 EVM 工具(以及智能合约)。

    这种方式有一个关键缺陷,即降低了有效性证明的扩展能力。由于重心放在与以太坊兼容,导致 zkEVM 速度更慢且资源密集度更高。与 CVM 不同,EVM 在设计时没有考虑证明效率。因此限制了在提高效率和可扩展性的优化使用,最终影响系统的整体性能。

    EVM 的可证明性

    zkEVM 方式的核心挑战在于 EVM 根深蒂固的原始蓝图,起初的设计并不是为了在有效性证明环境中运行。因此,努力都放在实现以太坊功能上,就无法释放有效性证明的全部潜力,导致效率不尽人意。这种低效率最终拖了系统整体性能的后腿。EVM 与有效性证明的兼容性受到以下因素的阻碍:

  • EVM 采用基于堆栈的模型,而有效性证明更高效地用于基于寄存器的模型。EVM 基于堆栈的性质使其本质上更难证明其执行的正确性,并为其本地工具链提供直接支持。

  • 以太坊存储布局重度依赖于 Keccak 和大型 Merkle Patricia 树,这两者都是非有效性证明友好型,带来巨大证明负担。例如,Keccak 对于 x86 架构非常快速(通常用于运行 EVM),但需要 9 万个步骤来证明(需要特殊内置)。而 Pedersen(零知识友好型哈希函数)只需要 32 个步骤。即使采用递归压缩,zkEVM 中使用 Keccak 消耗证明器资源仍旧很高,成本最终还是得由用户承担。

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

    加⼊OKEx全球社群

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

    扫码加入OKEx社群

    相关推荐

    industry-frontier