免责声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表MarsBit官方立场。
小编:记得关注哦
来源:Kyle
原文标题:入门指南:zkEVM、EVM 兼容性和 Rollup 最全解读
ZK Rollups 长期以来一直被认为是以太坊扩容的终极目标。然而,尽管它们对以太坊扩展路线图很重要,但几个关键点仍然存在广泛的不确定性:
如果您是一名希望了解以太坊扩展的下一阶段的开发人员,本文将(希望)有所帮助。
ZK Rollups 可以通过一个简单的观察来实现:像 STARK 或 SNARK 这样的证明系统允许使用亚线性处理来验证线性数量的语句(例如,1000 条语句 → 10 次验证者检查,10,000 条语句 → 11 次验证者检查)。我们可以使用此属性来创建可大规模扩展的区块链交易处理,如下所示:
简化的 ZK Rollup 架构
验证证明的 gas 成本与被证明的交易数量呈次线性关系,与直接使用 L1 相比,可以实现更大的规模。为了更详细地了解这个过程,我推荐 Vitalik 的《不完全 Rollup 指南》或 Delphi 新发布的《完整 Rollup 指南》。
到目前为止,所有生产级 ZK Rollup 都是我们所说的“特定于应用程序的 Rollup”。在特定于应用程序的 Rollup 中,Rollup 支持由 Rollup 运营方定义的固定数量的“状态转换”(例如交易)。这对于超优化常见用例非常有用,例如:
特定于应用程序的 Rollup 非常适合扩展特定的、易于理解的问题。如果您作为项目的需求可以通过特定于应用程序的 Rollup 来满足,那么您可能会为您的用例获得更好的性能、更好的用户体验和更好的定价,因为它们缺乏泛化性是一个巨大的优势。例如,在 Immutable,我们能够通过补贴免费的 NFT 铸造和通过 NFT 交易收费的转账来消除 gas 费用——这种权衡只有在 rollup 状态转换的可预测性质下才有可能。
但是,许多项目希望能够创建自己的自定义逻辑和智能合约,独立于 rollup 运营方,这在特定于应用程序的 rollup 中是不可能的。此外,许多 DeFi 项目需要“可组合性”,或与其他项目进行原子交互的能力(例如,许多 DeFi 项目使用 Uniswap 作为价格预言机)。只有当您的 rollup 不仅支持自定义代码,而且支持任何用户可以部署的本机智能合约时,组合性才是可能的。为了实现这一点,我们需要修改 ZK Rollup 的架构以概括我们的每个组件。
这种增加的灵活性有几个妥协:性能大大降低,rollup 参数的可定制性降低以及费用更高。然而,最大的妥协是根本没有通用 ZK Rollups 的实现,当然也没有能够生产级的实现。但这种情况开始改变:
这些最新的公告值得深入研究,因为这些团队不仅宣布了通用 Rollup,他们还宣布了“zkEVM”。随之而来的是推特上许多围绕“EVM 兼容性”、“EVM 等效性”、“真正的 zkEVM”以及哪种方法更好的争论。对于应用开发人员来说,这些对话通常是噪音——因此本博客的目的是分解这些术语、设计决策和理念,并解释它们对开发人员的实际影响。
让我们从头开始:什么是 EVM?
以太坊虚拟机(EVM)是执行以太坊交易的运行时环境,最初在以太坊黄皮书中定义,后来被一系列以太坊改进提案(EIP)修改。它由以下部分组成:
我们的虚拟机的一些示例操作码:
一个 EVM 程序只是一系列这些操作码和参数。当这些程序被表示为一个连续的代码块时,我们将结果称为“字节码”(通常表示为一个长的十六进制字符串)。
通过将大量这些操作码组合成一个执行序列,我们可以创建任意程序。以太坊使用自定义虚拟机,而不是调整现有的 VM,因为它有独特的需求:
EVM 是第一个图灵完备的区块链 VM,于 2015 年发布。它有一些设计限制,但其巨大的先发优势和随后的广泛采用为以太坊创造了巨大的差异化——它是迄今为止最久经考验的区块链虚拟机。它是整个领域的智能合约基础设施。
由于以太坊的主导地位,很多后来的区块链都直接采用了这种运行时环境。例如,Polygon 和 BNBChain 是以太坊的直接分叉,因此使用 EVM。值得注意的是,EVM 并非一成不变,并且在 EIP1559 等升级中经常被修改。由于其他区块链需要时间进行更新,或者在多个地方与以太坊有所不同,它们通常运行着稍微过时的 EVM 版本,并且难以跟上变化的步伐——这一事实可能会让以太坊的核心开发人员感到沮丧。
然而,人们所说的“EVM 链”通常不仅仅只是镜像这个运行时环境。有几个主要规范始于以太坊并已成为事实上的全球标准:
从技术上讲,您的链可以具有一个 EVM 运行时但不支持上述部分或全部标准。然而,遵守这些标准使得在你的新链上使用以太坊工具变得更加容易。一个很好的例子是 Polygon,它除了使用上述所有工具外,还能够运行 Etherscan (Polygonscan) 的分叉版本,使用 Hardhat 等以太坊开发工具,并支持 Metamask 等钱包。Nansen 和 Dune 等工具最初都针对以太坊,因此添加对新 EVM 区块链的支持。新钱包,新 NFT 市场——如果以太坊界面和你的链界面之间的唯一区别是链 ID,那么你可能是第一个也是最容易添加的。话虽如此,这些工具是为以太坊构建的——一旦你开始修改你的区块链(例如更大的区块,更快的区块时间),你就有破坏它们的风险。没有完美的兼容性。
尽管如此,针对以太坊规范的工具和应用程序的数量为新的区块链仅反映以太坊标准创造了巨大的动力。任何不支持上述规范的区块链在开发人员工具方面都会自动落后,并且随着 EVM 生态系统的发展,有进一步落后的风险。
我的信念是,“EVM 兼容”一词实际上不足以描述这里描述的网络效应——我们实际描述的是“以太坊兼容性”,并且远远超出了智能合约执行环境,延伸到了整个以太坊生态系统和工具集。
为了解决这个问题,像 Solana 这样的非 EVM 区块链必须创建完全平行的生态系统,这会降低它们的速度,并且更难吸引现有的开发人员。然而,不需要遵守这些标准确实使非 EVM 区块链能够对以太坊工具集进行更根本的更改,从而更积极地与以太坊区分开来。创建 EVM 区块链非常简单——但为什么有人会使用你的区块链而不是数百个其他“快速 EVM 区块链”之一。如果你能克服需要建立一个成功的平行链和生态系统的困难,Solana 已经证明:a)你可以吸引出色的原生应用程序(例如 MagicEden、Phantom)和 b)如果商业激励足够,源自 EVM 的项目仍将支持您(例如 Opensea 添加 Solana 支持)。
公共通用 rollup 都有一个共同目标:让开发人员和用户尽快生成网络效应。这需要结合创造最高性能的 rollup 技术、拥有最好的 BD 团队以及进行最早或最有效的营销。但是,所有 rollup 团队(出于上述原因)都非常关注:
将现有的以太坊合约(和开发人员)迁移到他们的 rollup 中
受到现有 EVM 工具(例如库、钱包、市场等)的支持
实现这两个目标的最简单方法是创建一个“zkEVM”:一个通用 rollup,将 EVM 作为其智能合约引擎运行,并保持与以太坊生态系统通用接口的兼容性,如上所述。
然而,这并不像分叉 Geth 那样容易,就像我们从头开始创建新的 L1 区块链时那样容易。我们的目标是运行 EVM 字节码——但 ZK 证明要求将它们证明的所有计算语句转换为一种非常特定的格式——一种“代数电路”,然后可以将其编译成 STARK 或 SNARK。为了快速了解“电路(circuit)”,这里有一个例子(使用更直观的布尔电路作为算术电路的特例)。在基于这个简单电路的 zkSNARK 系统中,我们的证明者希望让验证者相信他们知道输入(
留言与评论(共有 0 条评论) “” |