零知识卷叠(ZK-rollups)已经成为以太坊扩容路线图中最可行的解决方案之一。链上数据可用性、比乐观卷叠更快的最终确定性、密码学有效性证明以及ZK技术栈日益增加的优化是它们日益受欢迎的原因。
虽然ZK卷叠依靠无需信任的密码学机制来保障安全,而不是像乐观卷叠那样依赖激励参与者的诚实性,但由于零知识技术的复杂性以及EVM不友好于ZK设计,ZK卷叠很难构建。zkEVM的一个关键挑战是以可证明且成本效益高的方式实现Keccak MPT。由于EVM的设计不适合ZK,所有ZK卷叠都必须在EVM兼容性和性能之间做出权衡。与EVM和现有以太坊基础设施的高兼容性导致性能较差(更高的证明时间和成本),而通过使用ZK友好的VM和语言来优化性能则导致EVM兼容性较差。有关性能和兼容性权衡的更多详细信息,请参阅Vitalik的这篇文章。
目前,许多不同的团队正在构建ZK卷叠,其中大多数采用略有不同的方法。Taiko致力于通过支持以太坊的所有操作码和预编译,并保持相同的数据结构和共识内逻辑来实现完全的以太坊兼容性。Scroll和Polygon zkEVM将精力集中在构建字节码兼容的zkEVM上。原生EVM字节码可以在L2上执行,但与以太坊存在一些差异,特别是在数据结构(如区块结构和状态树)方面。zkSync和Starknet通过构建高性能且对ZK友好的VM,并在其上添加对Solidity和以太坊工具的支持作为附加层,来优化性能。
Kakarot是一种新型的2.5类型zkEVM,有望成为顶级扩容解决方案之一。它是一个使用Cairo开发的以太坊虚拟机(EVM)实现。Cairo是一种编程语言,可以生成计算跟踪,这些跟踪可用于生成基于STARK的ZK证明。Starknet利用Cairo在链的区块内表达智能合约执行。
Kakarot的方法可以与用Golang编写的Geth的EVM相比较。用Cairo编写的EVM的主要区别在于,Cairo计算可以通过CairoVM生成执行跟踪,然后使用Stone或Sharp生成Stark证明。由于所有密码学都由Starknet和CairoVM处理,Kakarot只需专注于EVM的工程设计。
2022年7月20日,Starkware团队的Sahar Papini在推特上提出了在Cairo之上构建zkEVM的想法。Starkware探索团队的负责人,同时也是以太坊核心开发团队成员的Abdel,于2022年10月开始实施这一想法。大约在同一时间,在Onlydust的帮助下,Starknet的开源建设者社区开始了一个类似的并行项目。在里斯本举行的StarknetCC期间,前者吸收了后者。在里斯本黑客屋中核心贡献者一周的工作后,Kakarot团队成立了。Kakarot从第一天起就采用了开源、开放贡献和社区驱动的技术策略原则。到2022年12月,Kakarot已实现了100%的EVM操作码兼容性。截至今日,Kakarot已有接近50位独特贡献者。
Kakarot的设计使其能够在不牺牲任何一方面的情况下优化兼容性、性能和灵活性。
兼容性:Kakarot使开发者能够用Solidity编写程序并使用现有的以太坊工具。这显著改善了开发者体验,因为他们不必担心学习新语言,可以继续使用以太坊发达的工具生态系统(Foundry、Hardhat、Wagmi)。Kakarot支持所有EVM操作码和9个预编译中的8个。用Solidity或任何其他EVM支持的语言编写的dApp可以部署到Kakarot上,无需对现有代码进行任何修改,也无需进行广泛的审计。最终用户也可以使用他们常用的工具链(Metamask、Wallet connect等)与dApp交互。根据Vitalik的分类,Kakarot属于2.5类型,目前正在完成所有预编译并探索气体等效性,这将使其成为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能够在以太坊之上启动它们的专用卷叠。StarkWare最近开源了StarkWare的STARK证明器Stone。这将允许社区创新并为其证明器做出贡献,进一步提高性能。虽然StarkWare已经取得了重大成就,但由于学习Cairo的挑战以及缺乏经过时间检验和熟悉的开发者工具生态系统,它尚未被开发者广泛采用。Kakarot使Starknet能够解决这两个挑战。
灵活实现:目前,Kakarot可以选择在以太坊上结算并成为以太坊L2 zkEVM,也可以在Starknet上结算并成为以太坊L3 zkEVM。根据性能和关键指标(气体价格、拥堵等),Kakarot可以作为L2或L3部署在主网上。Kakarot还拥有非常小的代码库(几千行代码),使审计和跟上EVM变化变得非常容易。如果并且当EVM添加新的操作码或预编译时,可以非常轻松快速地被Kakarot实现。
Kakarot的第一个主要里程碑将是在Starknet L2内部署EVM,为Starknet生态系统带来EVM兼容性。Kakarot将提供与原生Starknet协议的互操作性以及协议之间的可组合性。Kakarot还可以通过利用Madara使开发者轻松启动L3 zkEVM。Madara是基于Substrate框架构建的RUST基Starknet排序器。Kakarot团队一直在为Madara的开源开发做出贡献。L3将显著降低交易成本并提高TPS。该设计可以是模块化的,因为项目应该能够在Starknet L2或新的数据可用性解决方案(如Celestia或EigenDA)之间选择来发布交易数据。开发者将可以在更安全的选项或更具成本效益的解决方案之间做出选择。鉴于Kakarot在Cairo和EVM方面的定位和专业知识,Kakarot不仅限于纯粹的L2,还可以轻松探索许多其他可能性。Kakarot还旨在证明以太坊L1,可能为整个以太坊生态系统提高安全性,而不仅仅是为可扩展性方面做出贡献。
Kakarot通过提供可扩展性并遵循开源、安全和开发者自由的理念,战略性地定位为多链未来提供巨大价值。将密码学和EVM工程分离的模块化方法使Kakarot团队能够更快地迭代,保持高安全性,并从Starknet团队和开源社区的所有优化中受益。通过利用CairoVM生成执行证明的能力、Starknet的强大生态系统以及允许开发者使用现有工具和语言,Kakarot有效地管理了性能和EVM兼容性之间的权衡。
我们相信,ZK卷叠是以太坊扩容的最有前途的长期解决方案之一。优秀的团队已经取得了重大进展,但实现性能与EVM兼容性一直是一个挑战。Kakarot被设计为将便利性与性能相结合。Kakarot有望从EVM设计、以太坊工具和Starknet的证明框架的进步中受益,我们预计它将成为顶级扩容解决方案之一。