简单来讲,Type 1 zk-EVM 意味着Taiko 可以直接解读EVM 字节码,因此能够支持以太坊上Dapp 的丝滑迁移。
原文作者:y_cryptoanalyst
原文来源:Twitter
今天介绍一个“国产之光” 通用型 zk-Rollup — @taikoxyz. Taiko 是继路印后,团队基于zk 技术推出的又一力作。
路印因其不具备EVM 兼容性无法扩展为通用型zkRU, Taiko 作为能够实现完全以太坊等效性的zkRU 应运而生。
一起探索这个被V神所青睐的项目能给以太坊扩容带来怎样的崭新叙事。
背景
关于以太坊扩容已经是一个老生常谈的话题,近年来Rollup 一跃成为最炙手可热的扩容解决方案。
其中基于欺诈证明的Rollup 分支ORU 借助EVM 等效性迅速占领L2 市场,仅Arbitrum 和Optimism 就已占据超过85% 的市场份额。
基于零知识证明的zkRU 也竞相“亮剑”,纷纷推出自己的zk-EVM。
zk-EVM
Taiko 也不例外,与大多数zkRU 的实现路径不同,Taiko 旨在构建Type 1 zk-EVM。
按照V 神对zk-EVM 的划分,一共分为5类:Type 1/ 2/ 2.5/ 3/ 4. (见下图)
不同zk-EVM 需要在EVM 兼容性和zk 证明生成效率间做权衡,选择高EVM 兼容性,就意味着zk 证明生成难度加大,证明时间更长。
Taiko 构建的zk-EVM 属于Type1 梯队,即完全的以太坊等效性。跟其同属一梯队的还包括 @PrivacyScaling.
简单来讲,Type 1 zk-EVM 意味着Taiko 可以直接解读EVM 字节码,因此能够支持以太坊上Dapp 的丝滑迁移。
但以牺牲zk 证明的生成效率为代价。缩短zk 证明的生成时间也成为Taiko 核心工作。
协议核心角色
在讲Taiko 的实现原理前,先来捋一捋协议涉及的3个核心角色: 1)提议者;即将用户的L2 交易归集并提交到L1,任何人都可以申请成为提议者;
2)证明者;生成ZK-SNARK 证明的角色; 3)Taiko L2 节点。根据链上数据执行交易同步链状态,包括但不局限于角色1和2。
区块提交
Taiko 机制下将区块提交分为2个部分:区块提议和区块验证。 1)区块提议:提议者将区块数据发布到以太坊,即将区块附加到Taiko L1 智能合约中的提议区块列表。提交的数据信息具有不变性,也即意味着区块执行结果的确定性,任何人都可以计算区块的post-state root.
2)区块验证:由于所有提议区块都是确定性的,证明者可以进行并行证明。一旦提交特定块的zk 证明且其父块是已验证的,我们就把该区块标记为已验证。
运行机制
再来直观地看下运行机制: 分为以太坊上的Taiko L1智能合约和Taiko L2 节点。L2 的执行数据由提议者提交到Taiko L1合约,提议区块由Metadata 和交易列表(txList)两部分组成。 L1 只能够获取Metadata 的数据,无法获取txList 的数据,因此L1 无法通过重构状态根验证提议区块的有效性。
L1 也并不通过重构状态根来验证L2 交易的有效性,因为占用了计算资源,如果这样做就失去Rollup 的意义了。那么L1 如何验证提议区块的交易在L2 真实发生呢?
通过zk 证明(后面讲)。 对于Taiko L2 节点来讲,它们拥有自验证能力,因此可以验证提议区块交易的有效性。
L2 节点验证提议区块的交易有效后,会下载并转换成确定性的L2 区块(如下图: b1 转换成B1, b2 转换成B2……),所以此时Taiko L2 节点并不需要借助zk 证明来验证有效性。 证明者可以提交zk 证明到L1, 如果L1 节点通过zk 证明验证状态转换是有效的,也就证明该特定提议区块是有效的。
如果提议者提交了无效的提议区块,怎么“告诉”L1节点这个区块是无效的? 逻辑是在L2先构建一个临时区块(比如b3是无效区块,以B2为父区块构建临时区块B). 区块B只包含一笔交易invalidateBlock(…) ,把b3的txList 代入函数。 生成基于B的zk 证明提交到L1, 如果验证有效,则证明b3 是无效区块。
费用及奖励流向
Taiko 用户以 $ETH 作为交易gas. 区块提议者能够获取提议区块所有的交易费用,提议者需要支付一部分 $ETH 给L1 节点(DA 费用等);燃烧一定的协议代币 $TKO 出L2 块。
另外,L2 的证明者提交有效的zk 证明也将获得协议铸造的 $TKO 代币奖励。
以上就是关于Taiko 的简单介绍,更多详细内容可参考其官方白皮书: https://taikoxyz.github.io/taiko-mono/taiko-whitepaper.pdf… 以及创始人 @daniel_taikoxyz 关于L2 出块机制介绍的视频: https://youtube.com/watch?v=YUSCAFZRDqg… 如果此推特线程
对大家有帮助,麻烦转发、点赞第一条推文,感谢。