Taiko 是一个 EVM 等效的 ZK Rollup,通过支持去中心化、无许可和安全的 L2 架构中的所有 EVM 操作码来扩展以太坊。
撰文:0x5b79
编译:aididiaojp.eth,Foresight News
以太坊作为一个全球性的、可信的中立结算层,引入了强大的数字所有权,并为用户提供了随时随地转移价值的可能。它是价值互联网的基础协议,而且自从互联网诞生以来,以太坊是第一个让价值转移如此流畅的网络。
开发人员希望将他们的智能合约和应用程序部署到永久在线、可访问、无边界的计算网络上。为了实现上述目标,以太坊必须在某些区块链属性中做出抉择,即去中心化和安全性高于可扩展性。如果公共区块链不是去中心化和安全的,就失去可信中立的性质,进而丧失实用价值。但如果公共区块链不可扩展,就会因为交易费用过高且吞吐量过低,被大部分开发人员和用户唾弃。
为了充分实现其功能,以太坊必须支持任何想要参与网络的人,换句话说以太坊需要有极高的可扩展性来容纳全世界的人来参与网络活动,这也是 Rollups 被视为最有前途的扩展解决方案的目标。而最被看好的 Rollups 类型是与以太坊等效的 ZK Rollup。
什么是 Taiko?
Taiko 的目标是成为一个完全等同于以太坊的 ZK Rollup,并通过在技术层面和协议层面以太坊本身的运行方式来扩展以太坊。
ZK Rollups 是通过在链下执行、聚合和证明交易来扩展计算,并依靠以太坊进行数据可用性和有效性证明验证。目前开发中的 ZK Rollups 存在的最大缺点是它们不能完全支持 EVM 的广义计算,而是主要用于特定应用程序,这就导致破坏了现有以太坊 L1 智能合约和 dapp 的兼容性,并且使构建提供相同类型的可组合、体验更好的新合约变得更难。
与以太坊等效的 ZK Rollups,有时也称为 ZK-EVM,因其不会在安全性或兼容性方面妥协,所以被誉为第 2 层扩展解决方案的圣杯。Taiko 的目标就是成为一种 ZK-EVM,它优先考虑的是完美的以太坊 EVM 等效性,而不是 ZK-proof 的生成速度。
Taiko 的技术实现方式
Taiko 由三个主要部分组成:ZK-EVM 电路(用于生成证明)、L2 Rollup 节点(用于管理 Rollup 链)和 L1 上的协议(用于将这两部分连接在一起以进行 Rollup 协议验证)。
1. ZK-EVM
ZK-EVM 通过有效性证明确保 Rollup 上 EVM 计算的正确性。
Taiko 可以按原始方式运行以太坊智能合约代码,无需进行任何更改。开发人员可以轻松地将他们现有的以太坊智能合约和完整的 dApp 迁移到 Taiko,也可以在 Taiko 上部署他们的新 Solidity 代码和协议。通过生成 ZK-EVM 电路的有效性证明,Taiko 实现了一个能够支持每个 EVM 操作码的 ZK-EVM。除了与以太坊 L1 智能合约和 dapp 完美兼容之外,所有以太坊和 Solidity 工具都可以与 Taiko 无缝协作,无需中断开发人员的工作流程。这样做的好处有两个方面:
- Solidity 智能合约开发人员能够毫无摩擦地在 Taiko 使用 Solidity 语言进行开发,无需浪费任何时间来适应新开发环境。EVM 开发人员和以太坊智能合约背后的开发团队扩充速度也无需放慢。
- 以太坊上已经运行的价值数十亿美元的智能合约以及 dApp 避免了引入一种不同语言的风险,只需要调整结构框架后,它们可以移植到 Taiko 上来。
EVM 等效性还可以帮助 Taiko 利用现有的以太坊基础设施进行开发。例如执行层很容易被重新用作 Taiko 节点使用,同时 Taiko 客户端直接基于 Go-Ethereum 发开 。由于 Taiko 节点使用与以太坊相同的散列算法、签名方案和存储数据结构,Taiko 不仅能与虚拟机完美兼容,其他相关协议也是如此。如果以太坊协议更新,Taiko 会在 zkEVM 中保持同步更新。如果 Taiko 从研发中创造出新的方向,团队也将努力在以太坊上实现它们。
在兼容性方面,开发人员和基础设施提供商可以顺利使用 Taiko rollup,同时用户也完全熟悉 Taiko 的使用模式和产品。作为通用 L2,Taiko 的目标是赋能建设者,最终赋能用户,让其他人可以做他们想做的事情。利用以太坊的生态、EVM、定义明确的基础设施和工具、智能合约的临界质量和开发人员的专业知识是 Taiko 能够成为 type-1 ZK-EVM 的主要原因。
Taiko L2 Rollup 节点
Taiko 节点从以太坊获取交易数据并在 L2 上执行交易,根据最终交易执行情况推进状态。目前 Taiko 节点是一个以太坊 Geth 分叉,节点管理 Rollup 链。
Taiko Protocol
Taiko Protocol 将坚持安全、去中心化和无需许可的核心原则,来定义执行 Rollup 规则和潜在参与者资格。部署在以太坊 L1 上的智能合约可以充当 ZK-SNARK 证明的数据可用性机制和验证者,同时部署在 Taiko L2 上的智能合约执行某些重要协议功能。
网络参与者有三个角色:
- 提议者:从用户的 L2 交易中构造 Rollup 块,并提议给 L1,任何愿意的参与者都可以执行此块并创建功能。
- 证明者:从上述提议的区块中生成 ZK-SNARK 证明,确保 L2 交易和区块的有效性,任何愿意的参与者都可以执行此证明功能。
- 节点运营商:链上数据执行交易与链的状态保持同步。虽然提议者和证明者都需要运行节点来执行各自的任务,但其他参与者也将可以运行节点,例如提供区块浏览器等服务的节点和节点基础设施提供商。任何愿意的参与者都可以运行 Taiko 节点。
如何运作
Taiko L2 中的区块由按顺序执行的交易集合组成,通过将新区块附加到链上来更新其状态,同时遵循交易执行的协议规则来计算。
区块提交分为两部分:
- 区块提议:区块被提议后,区块数据将发布在以太坊上,同时区块将附加到 Taiko L1 合约的提议区块列表中。该协议确保区块在这一点上是不可变的,这意味着区块执行是确定性的,因此任何人都可以计算执行后的区块链状态。我们将一个区块提议和所有封闭的交易视为提议完成。L1 上提议区块的一个显着特征是,可能存在将被 Taiko L2 节点跳过的无效交易,但 Taiko L2 允许在同时提出多个块时进行容错。
- 区块验证:因为所有提议的区块都是确定性的,所以可以进行并行证明。一旦验证了该区块的证明,在其正确链接的父块被最终确定后,我们将该区块标记为链上最终确定。
该协议的一个基本要求是重建当前状态所需的所有数据,从而创建和附加新区块,并且所有的数据能够在以太坊上公开可用。此外,证明者可以仅使用以太坊上的公共数据来生成证明。依靠以太坊公共数据并为所有潜在参与者提供公平的竞争环境,使得 Taiko L2 保持去中心化。
一个普遍的现象是 EVM 计算、以太坊数据结构和嵌入式密码学等许多方面对 ZK-SNARK 并不友好,而且证明效率低下。克服这些挑战一直是该领域许多人努力工作的目标,这是在不同类型的 ZK-EVM 在兼容性中做出的主要权衡。例如 type-1 生成证明的速度最慢,但具有完美的兼容性和未来证明能力;其他类型生成证明的速度要快得多,但会失去不同程度的兼容性和未来证明能力。
团队介绍
Taiko 在今年第一季度推出,由 Loopring 创始人王东和前 Loopring 首席架构师 Brecht Devo 联合创立。Taiko 大多数团队成员都曾在可扩展性和 ZK Rollup 领域工作过。
小结
在坚持去中心化、无许可和安全的不可协商性以及完全 EVM 等效性的同时,Taiko 的明确目标是通过协议设计减少证明时间。协议寻求在 ZKP 生成之前快速达到最终确定状态。团队将继续以此目标设计协议,但如果缓慢的证明严重降低链的用户体验,也会对调整或优化持开放态度。
Taiko 将会更加关注与以太坊兼容性相关的的社区和用户体验等方面。区块链是代码强制执行的社会契约,但最终驱动协议的是人类及其价值观体系。