本篇文章介绍了Zeth,一个基于RISC Zero zkVM的开源ZK区块证明器,现已支持从以太坊主网构建和衍生Optimism主网的区块,并在链上验证这些证明。Zeth旨在优化与Optimism基础设施的集成,改善L2交易的争议解决过程,并展示通用zkVM在OP生态系统中的应用潜力。
去年末,我们发布了Zeth,这是一个为Ethereum构建的开源ZK区块证明器,基于RISC Zero zkVM。
现在,Zeth支持从以太坊主网可证明地构建和推导Optimism区块,并在链上验证这些简洁的证明。此集成利用了revm、alloy和ethers crates。
鉴于我们对OP Stack的承诺,我们设计了Zeth,以便与Optimism的基础设施无缝集成,利用我们先进的zkVM技术以实现最佳性能。
这对于解决在L2中执行的交易的正确性的争议以及哪些交易应组成真正的OP Stack Chain至关重要。
这在Superchain生态系统中扩展了ZK支持的可能性,包括引入更简化的欺诈证明过程和完全有效性证明的潜力。
这项工作验证了关于通用zkVM的原始论点。它还展示了一条通往OP生态系统更简单故障证明的道路,最终实现完全有效性证明。
在2023年8月,我们发布了Zeth,这是一个为Ethereum构建的开源ZK区块证明器,基于RISC Zero zkVM,并致力于Optimism基金会的使命,将ZK带入OP Stack。
今天,我们自豪地宣布,Zeth现在支持从以太坊主网以零知识构建和推导OP主网区块,并在链上验证这些证明。与第一次发布一样,第二次发布基于现有的revm、alloy、ethers crates及其对OP Stack的支持。
此发布标志着Zeth新特性的完全开源发布,同时提醒我们RISC Zero zkVM和Bonsai服务的进步。
Zeth的原始目标是以开源、倫理自生的ZK方式保留以太坊的第一层,使其能够适用于OP主网的基于EVM的二层解决方案。
在发布我们核心的持续技术(允许RISC Zero zkVM生成任意长计算的简短证明)不久后,我们把目光放在了Optimism基金会的提案请求上。我们制作了最初的Zeth原型,并继续改进zkVM,以提升适用性、成本效益和性能。
在这个过程中,Zeth成为第一个功能齐全的Type-1 zkEVM,超出了所有性能预期。我们用组合增强了我们的证明系统,这是一个通用形式的递归,开启了RISC Zero zkVM内部无限的可能性。
随着zkVM重新定义现有零知识工具的扩展极限,我们接受了推导和构建区块的挑战,打造出一个可以重新定义OP主网上欺诈证明过程的解决方案。OP主网的优雅之处在于,在EVM内部以乐观的方式运行EVM,确保以太坊开发人员拥有顺畅且可转移的体验。
在本文中,我们将探讨RISC Zero zkVM如何在OP主网上实现EVM的起源,并可靠地神圣化OP Stack的数据可用性机制。
要构建一个区块,需要在上一个区块的基础上执行一个交易批次。
在以太坊一层(L1)区块链中,“提议者”在每个区块中由共识的力量通过权益证明被任命,以确定整个网络的交易批次。OP主网是一个乐观 Rollup的二层(L2)网络,旨在通过转移交易计算责任来扩展以太坊,同时释放资源。
在Optimism中,这通过确保所有交易都是实时的、以压缩格式存在,并在一个可以随时由任何人读取的以太坊合约上实现。这在L2中产生了有关“真实”交易序列的一致性,并为汇总提供了一个可靠的数据可用性(DA)机制,将OP Stack Chain的存在与以太坊相互交织。
与这个DA合约进行交互以推导真实的OP Stack Chain超出了Type-1 zkEVM定义的范围。这是一个专门设计用于利用以太坊保护OP主网的过程。因此,这个过程由Optimism节点在EVM外部原生执行,除非涉及执行推导出的交易。这意味着即使你能在ZK中神圣化EVM,仍需要一种可靠的方式进一步神圣化建立在以太坊上的子协议。
我们已增强Zeth以完成这一目标。
核心开发团队在zkVM中完全实现了OP Stack DA机制(或推导过程),使用了持续和组合作为我们的基础。这对于解决在L2中执行的交易的正确性争议和哪些交易应组成真正的OP Stack Chain的争议至关重要。这扩展了在Superchain生态系统中的ZK支持的可能性,包括引入更简化的欺诈证明过程和完全有效性证明的潜力。
对于所有潜在的目的,Zeth还支持独立的OP区块构建模式。如果你的开发需求纯粹集中在OP主网上,这可能正是你所寻找的。
确保组合证明需谨慎处理。与持续中的情况不同,在使用组合时,必须小心将多个独立的证明组合在一起,因为在这种情况下,连续性并不是免费的。
考虑一个简单的组合证明,它有两个状态转换证明,一个证明可以从状态“A”转换到状态“B”,另一个证明可以从状态“B”转换到状态“C”,并得出一个证明,从状态“A”到状态“C”是可能的。这个组合的逻辑必须确保它连接的转换是连续的(即,第一个证明以“B”结束,第二个证明从“B”开始),以保持合理性。
同样,我们必须确保在组合两个(或更多)推导证明时,这些证明产生逻辑上连续的Optimism区块,并且使用相同的以太坊区块序列推导。这个第二个要求相当微妙,主要源于Optimism数据发布到以太坊的弹性特性。
因此,我们设计了一个简单的组合器,验证每个组合推导证明的最后一次读取的以太坊区块属于一个单独的Merkle树,该树承诺对推导期间扫描的所有以太坊区块的连续序列。由于OP推导过程中的许多细微之处,我们认为这是有效的组合推导证明的方法。
在我们关于Zeth的第一篇文章中,我们分享了我们zkVM性能的一些激动人心的数据。
当时,我们为价值数十亿个周期的计算构造了证明,这已经足够可验证以太坊区块。当我们满足提案标准时,我们必须证明之前更大的计算:10个不同的Optimism epochs,以及至少_180个块_的连续段。
我们之前发布的最大证明总量刚刚超过95亿个周期。为了Optimism,我们从一大堆证明中组合了一个单一的证明,这些证明证明了近1900亿的计算,压力让Bonsai比以往更加加倍。
我们生成的证明的统计信息可以在下面找到,并且在Sepolia上实时展示。
当我们在2022年初发布zkVM时,我们坚信通用ZK的方法将会获胜,因为编写代码而不是电路的好处。这种信念在我们在2023年发布Zeth时得到了证实。
从那时起,我们看到这个论点像野火一样传播。曾经看似荒谬的提议现在被正确视为明显的解决方案。如果你的逻辑简单到足以,不太可能需要大量维护,那么自定义电路是有意义的。但对于其他一切而言,全面功能的zkVM提供的工程速度和代码重用的好处是无法忽视的。这个项目也不例外。
作为这项工作的组成部分,我们必须为Zeth添加对Optimism的_L1 → L2推导过程_的支持(即管理基于发布到以太坊的数据构建新OP区块的过程)。这个过程很复杂。它涉及扫描每个以太坊区块,寻找来自操作序列的数据显示,解压这些数据并维护频道和帧的状态机。将其实现为自定义电路将是一项巨大的工作;而用Rust实现它,反而是轻而易举。
这项工作不仅验证了我们关于通用zkVM的论点。它还展示了一条通往OP生态系统更简单故障证明的道路,最终实现完全有效性证明。
这一点由Cem Özer特别好地解释,他在主权SDK的背景中描述了该概念,如下所示:
当代的故障证明会导致提取的漫长延误。延迟长度并非任意;而是必须支持故障证明中固有的交互式争议游戏。
如果你不需要支持交互式争议游戏,你可以相应地缩短提取延迟。
使用Zeth,你可以消除对交互式争议游戏的需求。这是意料之外的简单:指控者只需识别出一个无效的区块,然后发布该区块的正确推导的ZK证明。这是非交互式的,因此,这种方法可以将提取延迟缩短到生成ZK证明所需的时间。
这意味着延迟时间可以从几天缩短到几个小时(见时间信息这里)。而随着证明速度的加快,这些延迟可以从几个小时缩短到几分钟,最终完全消除,以便获得完全的ZK有效性证明。
我们对Optimism基金会在这方面的进展感到兴奋,并期待在未来的Optimism生态系统中的ZK工作中参与!
- 原文链接: risczero.com/blog/zeth-b...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!