【Astar系列】#2:Astar zkEVM,实现可扩展性和互操作性

  • 4pillars
  • 发布于 2024-04-26 14:48
  • 阅读 32

本文深入探讨了 Astar zkEVM 的技术细节,Astar zkEVM 基于 Polygon CDK 构建,旨在实现可扩展性和互操作性,通过与 Polygon AggLayer 的连接,Astar zkEVM 致力于实现无缝的用户体验,并探索了 XCM 在 Polkadot 生态系统中的互操作性愿景。

[Astar 系列] #2: Astar zkEVM,实现可扩展性和互操作性

主要见解

  • 许多项目目前正在开发 zkEVM,根据性能和 EVM 兼容性,大致可分为四个阶段。

  • Astar zkEVM 使用 Polygon CDK 开发,属于 Type 2.5 或 Type 2 zkEVM,本文分析了 Astar zkEVM 的结构。

  • 从历史上看,Astar zkEVM 通过 XCM 追求 Polkadot 生态系统内的多链和互操作性愿景,并且旨在通过未来与 Polygon AggLayer 的连接来扩展这种互操作性愿景。

1. Astar 的技术因业务而黯然失色

[Astar 系列] #1 中,我们简要探讨了 Astar Network 的历史和概述。Astar Network 以其在日本大型 Web2 公司和城市中的商业头脑而闻名,同样拥有强大的技术实力。从其在 Polkadot 生态系统中的成立之初,它就致力于开发可扩展性和互操作性的解决方案,现在旨在通过 Astar zkEVM 的实施进一步发展。即将推出的 [Astar 系列] #2 将深入探讨 Astar zkEVM 的各种技术特性。

2. zkEVM 概述

2.1 zkEVM

Rollup 将多个交易整合到一个区块中,以提高 Ethereum 的可扩展性。它们根据如何验证链下交易的有效性分为 Optimistic Rollups (ORUs) 和 Zero-Knowledge Proof Rollups (ZKOs)。ZKO 使用加密零知识证明 (ZKP) 技术来验证链下交易,并提交更新后的链上状态数据以及证明。

最初,像 LoopringzkSync Liteimmutable 这样的 ZKO 被开发为 Application-Specific Rollups,执行诸如代币交换和支付之类的任务。这些 rollup 提供低费用和可扩展性,但在通过 ZKP 计算执行通用智能合约方面存在限制,因为 Ethereum 的虚拟机在设计时并未考虑 ZKP 计算。

zkEVM 代表了一种努力,即开发一种在保留 Ethereum 虚拟机环境的同时支持 ZKP 计算的虚拟机,该虚拟机用于实现 ZKO。最初,由于 各种原因,在实施 zkEVM 方面存在重大挑战,并且预计启动通用 ZKO 需要一段时间。然而,最近有几个项目成功启动了一个能够通过 ZKO 执行通用计算的主网。

2.2 zkEVM 流程

零知识证明 rollup 的一般过程可以简单地表示如下:

  1. 链下发生的交易由执行引擎(例如,Geth、Nethermind)处理。

  2. 随后,利用 zkEVM 来证明交易执行的有效性(zkEVM 的实现因项目而异)。

  3. zkEVM 采用 ZKP 技术生成证明,然后将该证明与更新后的状态一起提交到链上(例如,Ethereum)。

  4. 最后,通过链上部署的智能合约来验证提交的证明的有效性。”

2.3 zkEVM 的类型

2022 年 8 月,Vitalik Buterin 在“不同类型的 ZK-EVM”中根据 EVM 兼容性和性能将 zkEVM 分为四种类型。每种类型后面的数字仅反映了由于实现方法的不同而导致的 EVM 兼容性和性能之间的权衡,而不是表明质量的层级结构。以下是这些类型的摘要:

  • Type 1(完全 Ethereum 等效): 此类型维护与 Ethereum 完全等效的状态,包括哈希函数、状态树和 gas 成本。它具有允许轻松迁移 Ethereum 的 dApp 基础设施的优势。但是,生成证明可能需要很长时间。目前,Taiko 是唯一积极开发 Type 1 zkEVM 的项目,并且已作为测试网运行。

  • Type 2(完全 EVM 等效): 此类型对 Ethereum 的数据结构和树配置进行细微修改,以方便 ZKP 计算,从而解决了 Type 1 的缺点之一——证明生成时间长。虽然它保持与现有 Ethereum 基础设施的兼容性,但它并不完全等同于 Ethereum。此类型仍然需要大量资源来生成证明,这导致了被称为 Type 2.5 zkEVM 的修改版本,其中调整了 gas 成本。

  • Type 3(几乎 EVM 等效): 此类型通过删除某些 EVM 功能(特别是 Precompiles)来缩短证明生成时间,Precompiles 处理诸如哈希和签名之类的特定操作。EVM 中有九个 Precompiles。Type 3 zkEVM 提供了更快的证明生成时间的优势。但是,使用 Precompiles 的 dApp 将需要修改其代码。目前,大多数 zkEVM 项目属于 Type 3 或 Type 4,并渴望实现 Type 1 或 Type 2。

  • Type 4(高级语言等效): 此类型涉及开发通用 VM 并创建一种对 ZKP 计算友好的编程语言。虽然它可以显着减少开发资源,但它在与现有 Ethereum 基础设施的兼容性方面存在困难。这意味着它与 Solidity 的兼容性高于与 EVM 的兼容性。此外,由于不同的字节码编译方法,它面临着与 Ethereum 不共享相同地址系统的挑战。像 zkSync Era 和 StarkNet 这样的项目属于 Type 4 zkEVM。

每种类型都有其自身的优点和缺点,这导致了它们在 zkEVM 开发的早期阶段被划分为这四个类别。最近,Type 3 中的项目一直在努力提高 EVM 兼容性,目标是过渡到 Type 2。

Type 3 zkEVM 支持 EVM 字节码,这使其与大多数应用程序和工具兼容。但是,由于它不支持某些操作码和预编译,因此开发人员可能需要进行细微的代码修改。不兼容的代码列表包括:

  • 操作码:SELFDESTRUCT、EXTCODEHASH、DIFFICULTY、BLOCKHASH、NUMBER

  • 预编译:SHA256、BLAKE、PAIRINGS

最近,Polygon zkEVM 已开始通过 Etrog 升级 支持诸如 BLOCKHASH、DIFFICULTY、EXTCODEHASH、NUMBER 之类的操作码和诸如 SHA256 之类的预编译。它继续更新不兼容的操作码、预编译和 EIP。同样,Astar zkEVM 使用相同的堆栈,正在从 Type 3 演变为 Type 2.5 或 Type 2,从而提供了一个对开发人员更友好的环境。

3. 基于 Polygon CDK 的 Astar zkEVM

3.1 Polygon CDK

在 2023 年 8 月底,Polygon 推出了 Polygon Chain Development Kit (CDK),采用了类似于 Optimism 的 SuperChain、Arbitrum 的 Orbit 和 ZkSync 的 ZK Stack 的策略。Polygon CDK 是一个模块化的开源软件工具包,可帮助区块链开发人员轻松地在 Ethereum 上构建新的 L2 链。该工具通过允许自定义各种组件(包括数据可用性层和原生 gas 代币)来轻松构建 rollup,从而扩展了作为 L2 的生态系统。此外,它还提供跨链功能,使使用 Polygon CDK 开发的链能够通过 Aggregation Layer (AggLayer) 互操作。目前,有几个项目正在使用 Polygon CDK 开发 rollup,包括 Astar zkEVM

3.2 Astar zkEVM 架构

Astar zkEVM 是使用 Polygon CDK 构建的链,并使用与 Polygon zkEVM 几乎相同的技术堆栈。它由以下组件组成:

  • Pool DB:功能类似于 mempool,包含用户通过 RPC 节点提交的交易。

  • Sequencer:验证在 Pool DB 中等待的交易的有效性,并将它们包含在一个批次中。然后,它将批次提案发送到 Ethereum 网络。

  • State DB:一个永久存储状态数据的数据库。

  • Aggregator:观察 Sequencer 提出的批次,并生成相应的 ZKP,以便通过 zkProver 提交到 Ethereum。

  • Synchronizer:从 Ethereum 获取数据并在 State DB 中更新数据。

因此,用户提交的交易由 Sequencer 包含在一个批次中,并且 Aggregator 为该批次生成一个 zkp,然后将其提交到 Ethereum 网络以完成状态,从而相应地更新 State DB。与使用 Ethereum 网络作为数据可用性 (DA) 层的 Rollup 不同,Astar zkEVM 使用单独的 DAC 管理数据可用性,从而略微牺牲了安全性以提高可扩展性。

对于使用 DAC 方法开发的 Polygon CDK 链,只有数据的哈希值发布在 Ethereum 网络上。DAC 的参与者亲自验证提交的哈希值,并将他们的验证作为签名发送给 Sequencer。此过程涉及多重签名,并且需要一定数量的签名才能确保数据可用性。

3.3 zkProver

除了执行 zkNode 客户端之外,Aggregator 还需要运行 zkProver 来为批次生成证明。zkProver 由各种状态机组成。主要状态机负责执行交易并将生成的 EVM 字节码转换为 zkASM 语言,该语言针对证明生成进行了优化。然后,交易和数据被转换为多项式形式。STARK Builder 采用这些多项式并生成相应的 zk-STARK 证明。由于这些证明是递归生成的,因此可以将数百个 zk-STARK 证明整合为单个证明。虽然 STARK 证明生成速度很快,但它们的缺点是尺寸很大。为了解决这个问题,zkProver 生成与 STARK 证明相对应的 SNARK 证明,以显着减小它们的尺寸,从而将 gas 成本从 5M 压缩到仅仅 350k。

4. 迈向极致用户体验 (UX):互操作性的重要性

4.1 XCM

早在通过 Astar zkEVM 连接到 Polygon Agglayer 之前,Astar Network 就已经强调了通过互操作性和多链未来愿景来增强用户体验的重要性,如 此处 所述。XCM 是这种承诺的一个主要例子。XCM 是 Cross-Consensus Message Format 的缩写,它促进了不同共识系统之间的通信,并且是 Polkadot 生态系统中的一个标志性消息传递格式。

关于 XCM 有两个常见的误解。首先,XCM 不是协议层,而是一种用于在链之间交换任意数据的消息传递格式,独立于实际的消息传输,后者由诸如 XCMP、HRMP 和 VMP 之类的协议层处理。其次,XCM 的实用性不仅限于 Polkadot 生态系统;虽然它是 Polkadot 中的一个突出特性,能够实现连接到 Polkadot Relay Chain 的平行链之间的通信,但它的设计允许在任何具有基于共识的终结性的系统中进行通用应用。

XCM 启用了诸如“远程转移”(类似于 Cosmos 的 ICA)之类的功能,该功能允许控制其他链上的帐户以促进资产转移,以及“资产隐形传输”,该功能涉及在一个链上销毁资产并在另一个链上重新创建它们。这些功能显着增强了 Polkadot 生态系统中互连的平行链中的用户体验。

由于 Substrate SDK,使用它构建的网络可以轻松地集成 XCM pallet 模块,从而受益于 XCM 的功能。这同样适用于 Astar Parachain,它目前提供各种 XCM 功能。从执行涉及将 DOT 代币转账到 Astar Parachain 的“原生 XCM 交易”到创建和利用诸如“XC20 资产”之类的通用链资产,通过“远程交易”在其他链上执行交易,以及通过“转移储备资产”将资产从一个网络转移到另一个网络,开发人员可以在 Astar Parachain 上为用户提供无缝的跨链体验。

4.2 AggLayer

考虑到类似的愿景,Astar Network 旨在通过 Polygon AggLayer 实现这一目标。Astar zkEVM 是第一个连接到 Polygon 相关网络之外的 AggLayer 的网络。AggLayer 是一种协议,可聚合和压缩 ZKP 以最终提交到 Ethereum,从而使能够通过 zk-proof 证明交易的网络(无论是 L1 还是 L2)都可以连接。来自连接到 AggLayer 的网络的 ZKP 的聚合为跨链消息传递提供了显着优势。

第一个优势是有效性;在跨链消息传递中,确保来自其他网络的交易的有效性至关重要,并且通过 AggLayer 连接的网络可以通过 zk-proof 轻松验证这一点。第二个是主权;虽然用于原子交易的共享排序器可能需要网络牺牲排序和 MEV 收入,但 AggLayer 上的网络可以维护自己的排序器(或验证器),并且仍然可以享受原子交易的好处。总的来说,连接到 AggLayer 的网络之间可能的无缝跨链消息传递可以显着增强用户体验。

在 AggLayer 中,存在两种主要的跨链消息传递场景:异步和同步情况。传统上,该过程涉及将每个链的 ZKP 提交到 AggLayer,然后将这些证明压缩为最终提交到 Ethereum 网络进行有效性验证,然后再进行任何跨链消息传递,如左图所示。但是,由于其耗时的特性,此方法可能会延迟用户体验。

为了解决这个问题,AggLayer 支持一种乐观的方法,其中有效性是在事后验证的(如图片中间所示)。此方法允许基于从一个链提交到 AggLayer 的批次进行跨链消息传递,然后再生成 ZKP,并在之后进行有效性验证。如果出现任何问题,将执行回滚和削减程序。虽然这种方法简化了该过程,但它是异步运行的,这意味着交易在链上按顺序执行,而不是同时执行。

为了克服此限制,AggLayer 还促进了原子交易处理(如图片右侧所示)。在这里,用户将交易包提交到 AggLayer。此包中的交易被分派到其各自的链,其中受影响的状态被暂时冻结。一旦所有交易都正确执行,每个链都会生成一个 ZKP,并且如果未发现任何问题,则会解锁冻结的状态。

利用这些功能,Astar zkEVM 的用户可以与通过 AggLayer 连接的多个网络进行交互,感觉就好像他们正在与单个网络进行交互一样。例如,Astar zkEVM 的用户只需单击一下即可将其 ETH 存入连接到 AggLayer 的网络上的任何渲染协议。

5. 展望未来

最近,许多项目一直在以各种方式探索链抽象的概念。在主网级别,倡议包括 Near Protocol 的去中心化前端和 Polygon 的 AggLayer,而在应用程序级别,诸如 UniswapX 和 Across 之类的努力旨在利用意图。重点是提供一种用户体验,该体验在多个网络上感觉无缝,类似于与单个服务进行交互。

Astar Network 一直在关注多链和链抽象的未来,甚至在这些概念受到广泛关注之前就已如此,并且旨在通过 Astar zkEVM 实现这一愿景。Astar zkEVM 与 Polygon AggLayer 合作可能提供的新形式的用户体验值得关注。Astar 系列的最后一篇文章将探讨围绕 Astar zkEVM 的生态系统。

感谢 Kate 为本文设计图形。

  • 原文链接: 4pillars.io/en/articles/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
4pillars
4pillars
江湖只有他的大名,没有他的介绍。