风险提示:央行等十部委发布《关于进一步防范和处置虚拟货币交易炒作风险的通知》, 请读者提高风险意识。

高效扩展以太坊:详述有效性证明 Rollup 和 Cairo VM 强大之处

详述有效性证明 Rollup 和 Cairo VM 强大之处

StarkWare
StarkWare
热度 ...

原文标题:Scaling Ethereum Efficiently

原文作者:StarkWare

原文来源:medium

编译:「Starknet 中文」社区

概要

  • 有效性证明 Rollup 以安全和去中心化的方式增加以太坊吞吐量,也是最具潜力的方式;zkEVM 和 Cairo VM(CVM)是有效性证明 Rollup 中所使用到的两种虚拟机 (VM) 类型。
  • zkEVM 专注于以太坊兼容性,但牺牲了性能和可扩展性。
  • Starknet 采用的 Cairo VM 将性能和可扩展性置于兼容性之上。

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

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

zkEVM

请注意:有效性证明 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 消耗证明器资源仍旧很高,成本最终还是得由用户承担。

因此,各类 zkEVM 旨在为以太坊工具提供不同程度的支持,但 zkEVM 与以太坊兼容性越高,性能也就越低。(有关更多 zkEVM 类型的信息,请参阅文章结尾处)

zkEVM

了解 Cairo-VM 运作方式

zkEVM 解决方案在「让 EVM 适用于有效性证明 Rollup」方面投入了大量开发时间,将兼容性置于长远性能和可扩展性之上。还有另一个选项:采用全新的专用虚拟机,并新增一个额外层用于支持以太坊工具。这就是Starknet采取的措施,Starknet 于 2021 年 11 月推出了一个无需许可的有效性证明 Rollup。Starknet 是首个在完全可组合性网络中,实现通用智能合约平台的有效性证明 Rollup。

关于【高效扩展以太坊:详述有效性证明 Rollup 和 Cairo VM 强大之处】的延伸阅读

  • 加密杂谈:对RaaS和Eigenlayer的一些看法

    本文讨论了加密货币领域的热门话题,包括Rollup技术、Restaking、LRT、AVS和Eigenlayer。作者认为目前情况并不乐观,团队进展缓慢,Rollup部署过多也不利。对于Restaking、LRT、AVS和Eigenlayer的不满,存入ETH数量巨大,但空投效果不佳。团队发布庞大白皮书,但工作原理和概念仍不清楚。Eigenlayer决定暂不启用惩罚机制,但是否有必要为每个新兴协议提供近十亿美元的用户Restaking ETH并面临风险?惩罚机制将在不到一年内启用,操作者是否意识到Restaking风险?或许会有其他平台蚕食Eigenlayer的市场份额。

  • 详解 OP Stack Rollup 流程及对应代码

    Optimism Bedrock是当前版本的OP Stack,提供了启动生产质量的Optimistic Rollup区块链的工具。它包括op-batcher和op-proposer两个服务,负责从sequencer读取交易内容并rollup到链上,以及将交易状态rollup到合约。文中介绍了如何使用recordL1Tip和l1Tip来获取最新的L1BlockRef,以及如何收集和提交交易数据。每个事务仅使用一帧,如果通道已满,则仅返回剩余帧,直到成功发送到L1。sendTransaction将交易发送到一层,并更新交易发送状态。FetchNextOutputInfo获取L2上的区块output,NextBlockNumber获取下一批次需要提交的区块区间,SyncStatus获取L2块的状态和块信息,OutputAtBlock根据块高获取output,sendTransaction使用output构建stateRoot提交交易到一层链。

Starknet 采用Cairo-VM(CVM),并创造同名高级语言 Cairo。Cairo-VM 是为高效生成程序执行的有效性证明而设计。

通过 Cairo(VM 和编程语言)可实现:

  1. 优化有效性证明,每条指令都有一个有效代数表达式
  2. 用于编写可证明程序的现代类 Rust 语言
  3. 高级 Cairo 语言和 Cairo 汇编(VM 指令)之间的中间表达式(Sierra),可以高效执行Cairo 代码

开发一种全新语言可以根据特定需求定制,可以包含以前所不具备的功能,满足新需要。

Cairo 和编码多元化

为了创建某些计算的有效性证明,首先必须将该计算表达为描述计算的一系列数学约束。这个过程非常复杂,难点在于优化计算以提高效率,而且需要特定工具。

Cairo语言设计之初就是为了简化这一任务,以便StarkEx能轻松增添功能和复杂的商业逻辑。将 Cairo 程序编译成代数机器代码,即一串数字,由单个固定的 VM 执行。有了 Cairo,生成描述计算的数学约束这个复杂过程(对于有效性证明来说非常棘手)得以抽象化,进而以一组固定的约束条件(总共不到50个约束)来表示。这样,开发者无需理解底层数学和基础设施,仅需用熟悉的语法编写代码,就能利用有效性证明扩展应用程序。

https://twitter.com/EliBenSasson/status/1638270015009968134

Starknet 致力于创新,这点在代码多元化处理方法上展现得淋漓尽致。Cairo 采用STARK技术实现最佳扩展功能,不仅限于使用 Cairo 本地环境编写合约。开发者还可以选择最适合的方式:

  • 在 Cairo 本地编码:Cairo 1.0受 Rust 启发,更加符合开发者使用习惯且更加安全,编写程序逻辑变得更加容易且不易出错。
  • Solidity 兼容性:Solidity 开发者可以编写支持 Cairo VM 的代码。这种方式提供了与以太坊相似的开发者体验,并支持 Solidity 智能合约迁移至 Starknet。迁移实现方式有两种:
  • 转译:转译是将一种编程语言的源代码转换成另一种语言的过程。Nethermind 团队构建了Warp转译器,用于将 Solidity 代码转译为 Cairo。Warp 让 Solidity 智能合约可移植至 Starknet,使其有效成为第四类 zkEVM。目前已用于转译和部署Uniswap合约,只需极小的改动即可实现。
  • Starknet 上的 zkEVM:Cairo VM 能用于证明另一个 VM 的执行。Kakarot是采用 Cairo 编写的zkEVM,可用于在 Starknet 上运行以太坊智能合约。Cairo VM 和 zkEVM 并不是竞争关系,与其在两者之间做出选择,不如采用两者兼得的方式!

尽管 Cairo 问世时间不长,但根据 TVL 排名,Cairo 是第四受欢迎的智能合约编程语言,估值超 3.5 亿美元。

总结

zkEVM 旨在将以太坊开发者环境复制到 Rollup 中,并允许开发者使用熟悉的以太坊工具。但这种方式限制了有效性证明的潜力,且资源密集。

专为有效性证明设计的 Cairo VM 不受到 EVM 的限制。Cairo VM 支持 Cairo 1.0。Cairo 1.0 受 Rust 语言启发,更加符合开发者使用习惯且更加安全,形成强大的工具,旨在利用 STARK 证明高效扩展以太坊。

看到 Cairo 每周都在发展,Kakarot zkEVM 和 Warp 这种开发者选择越来越多,令人兴奋。随着 Starknet dApp 投入生产,展现出 Cairo 的强大力量,我们坚信未来 Cairo 会催生出前所未见的优秀项目。

上文概述了 SATRK 扩展的三种路径,毫无疑问未来几个月还会有更多创新诞生。开发者现在对扩展区块链有了前所未有的掌控权。

zkEVM 类型

Vitalik 将 zkEVM 主要分为四个类型:
第一类完全等效以太坊:不改变以太坊生态系统的任何部分。
第二类完全等效 EVM:能和现有 dApp 兼容,并对以太坊的设计做出部分调整以加快证明生成。
第三类大致等效 EVM:支持大部分 EVM 操作码,移除部分 zkEVM 难以实现的功能(如预编译和哈希函数)。
第四类等效高级语言:用 Solidity/Vyper 编写智能合约代码,并将其转译成有效性证明友好型语言。

免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:StarkWare,如有侵权请联系删除。转载或引用请注明文章出处!

标签:

分享至
https://www.chainlook.cn/toutiao/1691122301.html

下一篇:

Binance.US聘请的律师George Canellos何许人也?

Canellos 还曾担任奥巴马政府于 2009 年成立的机构间金融欺诈特别工作组 RMBS 工作组的联合主席。

免责声明:
链观CHAINLOOK作为区块链技术应用与Web3行业研究的智库媒体,旨在为中国区块链专家、学者们提供最新的行业资讯信息与数据样本,用于区块链技术研究与创新。本站所发布的文章仅代表作者的个人观点,不代表链观CHAINLOOK官方立场,本站所发布的区块链行业研究报告与数据分析成果是通过人工智能算法对数据内容进行分析与归纳生成,不代表任何投资暗示与建议,链观CHAINLOOK不承担法律责任。

风险提示:
虚拟货币不具有法定货币等同的法律地位,参与虚拟货币投资交易存在法律风险,链观CHAINLOOK坚决反对各类代币炒作,请读者提高风险意识,理性看待区块链技术应用及市场风险。

© 链观CHAINLOOK All Rights Reserved. 京ICP备18054193号-5