作者:Longhash Ventures;翻译:金色财经0xxz
前言
ZK-rollups已成为在其以rollup为中心的路线图中扩展以太坊的最可行解决方案之一。链上数据可用性、比乐观rollup更快的最终确定性、加密有效性证明以及 ZK 堆栈不断优化是其日益流行的一些原因。
图片来源:TheBlock
ZK rollup面临的挑战
虽然 ZK-rollups 依赖于无需信任的加密机制来确保安全,而不是像乐观 Rollups 那样依赖让参与者保持诚实激励机制,但由于零知识技术的复杂性和 EVM 对 ZK 的不友好,ZK-rollups 很难建设。zkEVM 面临的主要挑战之一是以可证明且经济高效的方式实施 Keccak MPT。由于EVM的非ZK友好设计,所有ZK rollup都需要在EVM合规性和性能之间做出权衡。与 EVM 和现有以太坊基础设施的高兼容性会导致性能较差(证明时间和成本较高),而通过使用 ZK 友好的 VM 和语言来优化性能会导致 EVM 兼容性较差。有关性能和兼容性权衡的更多详细信息,请参阅Vitalik的文章“不同类型的L2”。
图片来源:Vitalik Buterin
目前许多不同的团队正在构建 ZK-rollups,其中大多数团队的方法略有不同。Taiko 致力于通过支持以太坊的所有操作码和预编译并维护相同的数据结构和共识逻辑来实现以太坊的完全兼容性。Scroll 和 Polygon zkEVM 致力于构建字节码兼容的 zkEVM。原生 EVM 字节码可以在 L2 上执行,但与以太坊有一些区别,特别是在区块结构和状态树等数据结构方面。zkSync 和 Starknet 通过构建高性能和 ZK 友好的 VM 并添加对 Solidity 和以太坊工具的支持作为顶部的附加层来优化性能。
Kakarot概述
Kakarot 是一种新的2.5型zkEVM,定位为顶级扩展解决方案之一。它是使用 Cairo 开发的以太坊虚拟机 (EVM) 的实现。Cairo 是一种编程语言,可以生成计算痕迹(traces),可用于生成基于 STARK 的 ZK 证明。Starknet 利用 Cairo 在链的区块内表达智能合约的执行。
Kakarot 的方法可以与用 Golang 编写的 Geth 的 EVM 进行比较。用 Cairo 编写的 EVM 的主要区别因素是 Cairo 计算可以通过 CairoVM 生成执行痕迹(traces),然后可以使用 Stone 或 Sharp 生成 Stark 证明。由于所有密码学均由 Starknet 和 CairoVM 处理,因此 Kakarot 只需专注于 EVM 的工程设计。
图片来源:Kakarot 作为被enshrined EVM
Kakarot是如何开始的?
2022 年 7 月 20 日,Starkware 团队的 Sahar Papini 在Twitter 上发布了在 Cairo 上构建 zkEVM 的想法。Abdel 是 Starkware 探索团队的负责人,也是以太坊核心开发团队的一部分,于 2022 年 10 月开始实施该项目。大约在同一时间,Starknet 的开源构建者社区在 Onlydust 的帮助下,并行开始了一个类似的项目。前者在里斯本 StarknetCC 期间吸收了后者。经过核心贡献者在里斯本的一家黑客之家工作一周后,Kakarot 团队成立了。Kakarot 从第一天起就采用开源、开放贡献和社区驱动的技术策略原则。到 2022 年 12 月,Kakarot 已实现100% EVM 操作码兼容性。截至目前,Kakarot 拥有近 50 位贡献者。
Kakarot 如何应对 ZK Rollup 的挑战?
Kakarot 的设计使其能够优化兼容性、性能和灵活性,而不会在任何方面做出太多牺牲。
兼容性: Kakarot 使开发人员能够在 Solidity 中编写程序并使用现有的以太坊工具。这显著改善了开发人员的体验,因为他们不必担心学习新语言,并且可以继续使用以太坊开发的工具生态系统(Foundry、Hardhat、Wagmi)。Kakarot 支持所有 EVM 操作码和 9 个预编译中的 8 个。用 Solidity 或任何其他 EVM 支持的语言编写的 dApp 可以部署到 Kakarot 上,无需对现有代码进行任何修改,也无需进行大量审计。最终用户还可以使用常用的工具链(Metamask、Wallet connect 等)与 dApp 进行交互。根据 Vitalik 的分类,Kakarot 属于 2.5 型zkEVM,并且正在完成所有预编译并探索Gas等效性,这将使其成为 2 型 zkEVM。
性能: Kakarot 利用 Starknet 的 CairoVM 和 STARK 有效性证明。这使得Kakarot能够利用不需要任何类型的可信设置并且具有量子抗性的有效性证明。随着量子计算研究的快速发展,STARK 证明为 Kakarot 提供了面向未来的技术堆栈。就性能而言,STARK 证明非常有前途。Celer Network 最近进行了一项练习,使用不同的 zk 证明框架对 SHA-256 的性能进行基准测试。starky(来自 Polygon Zero 的 STARK 框架)和 Boojum(zkSync 基于 STARK 的实现)与其他框架相比,具有最快的证明生成时间和更低的内存消耗,尽管代价是证明大小要大得多。这不是全面的比较,因为它仅比较 SHA-256 的性能,不包括 Starknet 证明者,但它确实提供了 STARK 框架功能的一些早期证据。
StarkWare 于 2018 年率先使用 STARK 有效性证明来解决以太坊的可扩展性问题。从那时起,StarkWare 团队展示了出色的研究能力以及构建和设计尖端产品的能力。除了通用 StarkNet L2 和 Cairo 之外,该团队还构建了 StarkEx,支持 Immutable X、Sorare 和 rhino.fi 等大型 dapp 在以太坊上启动其专用 Rollups。StarkWare 最近开源了 StarkWare 的 STARK Prover Stone。这将使社区能够创新并为其证明者做出贡献,并进一步提高性能。尽管 StarkWare 已经实现了重要的里程碑,但由于学习 Cairo 的挑战以及缺乏经过时间考验且熟悉的开发人员工具生态系统,它尚未被开发人员广泛采用。Kakarot 让 Starknet 能够解决这两个挑战。
实现灵活性:
截至今天,Kakarot 可以选择落户以太坊,成为以太坊 L2 zkEVM,也可以选择落户 Starknet,成为以太坊 L3 zkEVM。根据性能和关键指标(gas 价格、拥塞等),Kakarot 可以作为 L2 或 L3 部署在主网上。Kakarot 还拥有非常小的代码库(几千行),使得审计和跟上 EVM 更改变得非常容易。如果将新的操作码或预编译添加到 EVM 中,Kakarot 可以非常轻松快速地实现它们。
未来之路
Kakarot 的第一个重要里程碑将是在 Starknet L2 内部署 EVM,从而为 Starknet 生态系统带来 EVM 兼容性。Kakarot 将提供与原生 Starknet 协议的互操作性以及协议之间的可组合性。Kakarot 还可以让开发人员利用 Madara 轻松启动 L3 zkEVM。Madara 是一个基于 RUST 的 Starknet 排序器,构建在 Substrate 框架上。Kakarot 团队一直为 Madara 的开源开发做出贡献。L3将显着降低交易成本并提高TPS。该设计可以是模块化的,因为项目应该能够在 Starknet L2 或新的数据可用性解决方案(例如 Celestia 或 EigenDA)之间进行选择来发布交易数据。开发人员可以在更安全的选项或更具成本效益的解决方案之间进行选择。考虑到 Kakarot 在 Cairo 和 EVM 方面的定位和专业知识,Kakarot 并不局限于纯粹的 L2,并且可以轻松探索许多其他可能性。Kakarot 还旨在证明以太坊 L1 除了有助于扩展性之外,还可能提高整个以太坊生态系统的安全性。
结论
Kakarot 的战略定位是通过提供可扩展性并遵守开源、安全和开发人员自由的精神,为多链的未来提供巨大的价值。分离密码学和 EVM 工程的模块化方法使 Kakarot 团队能够更快地迭代,保持高安全性,并受益于 Starknet 团队和开源社区的所有优化。通过利用 CairoVM 生成执行证明的能力、Starknet 强大的生态系统,并允许开发人员使用现有的工具和语言,Kakarot 有效地管理了性能和 EVM 兼容性之间的权衡。
我们相信 ZK-rollups 是扩展以太坊最有前途的长期解决方案之一。优秀的团队已经取得了显著进步,但实现性能和 EVM 兼容性一直是一个挑战。Kakarot 的设计旨在将便利性与性能结合起来。Kakarot 的定位是受益于 EVM 设计、以太坊工具和 Starknet 证明框架的进步,我们预计它会成为顶级的扩展解决方案之一。