ZK Rollups:房间里的大象

Jaehyun Ha热度: 10648

ZK Rollups是一种简化的区块链技术,利用零知识和简洁性属性来保护用户隐私并提高交易速度。然而,目前仍存在隐私泄露和数据可用性的问题。生成ZKP和提交证明的速度可能成为快速终结的瓶颈,降低用户体验。ZK Rollups可能不适合所有类型的DApps,且发布状态差异的方法也存在安全风险。尽管如此,ZK技术仍有潜力解决区块链难题。

摘要由 Mars AI 生成
本摘要由 Mars AI 模型生成,其生成内容的准确性、完整性还处于迭代更新阶段。

原文作者:Jaehyun Ha

原文来源: Presto Labs

原文标题:[ZK series - 1] ZK Rollups: Elephant In the Room

编译:TechFlow,深潮

摘要

  • 虽然零知识证明(ZKPs)有望打造一个更加私密和可扩展的区块链生态系统,但许多关于零知识(ZK)的方面被误解或与普遍认知中的实施方式不同。
  • ZKPs主要有两个方面:“零知识”和“简洁性”。虽然这种说法没有错,但大多数ZK rollups只利用了简洁性属性,交易数据和账户信息并没有完全保持零知识或私密。
  • 对于各种类型的DApps,ZK rollups可能不是最佳的开发堆栈选择。例如,生成ZKPs可能成为快速终结的瓶颈,从而降低Web3游戏的性能,而基于状态差异发布的数据可用性保证方法可能会损害DeFi借贷协议的服务。

ZK Rollups

图 1:ZK 是一个很好的流行词

来源:imgflip

区块链行业的当前状态可以比喻为零知识(ZK)时代。无论你走到哪里,ZK都很突出,找到不将ZK纳入其名称的下一代区块链项目变得越来越罕见。从技术角度看,无可否认,ZK是一项有前景的技术,能够为更具可扩展性和私密性的区块链生态系统做出贡献。然而,由于ZK的复杂技术背景,许多投资者,无论是散户还是机构,常常基于“相信”这看起来很酷、新颖且可能解决区块链三难问题而投资于ZK项目,而没有完全理解ZK技术如何使每个项目受益。

在这个ZK系列中,我们将探讨ZK rollups的难以忽视的事实(缺点和劣势)及其有益的应用。首先,我们将解析区块链中ZK证明(ZKPs)的两个核心属性:“零知识”和“简洁性”。然后,我们将讨论当前在服务中的大量ZK rollups为何没有真正利用“零知识”方面。接下来,我们将研究在哪些领域应用ZK rollup比较有害而非有益,避免实施复杂性等众所周知的问题。最后,我们将突出那些有效体现ZK原则并实际从使用ZK技术中获得明显好处的杰出项目。

回顾:ZK Rollups 中的交易生命周期

Rollup 是一种扩展解决方案,通过在链外执行交易束然后将最新 L2 状态的摘要数据存储在 L1 上来解决 L1 的吞吐量限制。其中,ZK Rollups 的突出特点是能够通过在链上提交链下计算的有效性证明来快速提取资金。在我们深入研究 ZK rollups 的问题之前,让我们简单回顾一下它的交易生命周期。

ZK Rollups

图 2:ZK rollups 中的交易生命周期

来源:Presto研究中心

  1. 每个L2用户生成并提交他们的交易给序列器。
  2. 序列器聚合并排序多个交易,然后在链下执行这些交易以计算新的rollup状态。随后,序列器将这个新的rollup状态以“批次”形式提交到链上状态智能合约,并压缩相应的L2交易数据成为数据块以确保数据可用性。
  3. 这个批次被发送给证明者,证明者创建该批次执行的有效性证明(或ZKP)。然后,这个有效性证明连同额外数据(即之前的状态根)一起发送到L1的验证者智能合约,这有助于验证者识别它正在验证的内容。
  4. 在验证者合约检查证明有效后,rollup的状态会被更新,且已提交批次中的L2交易被视为已完成。

(请注意,这种解释是ZK Rollup过程的简化版本,每种实现可能因协议而异。如果我们区分角色,L2中可能有更多实体,如聚合器、执行器和提议者。数据块的层级也可能不同,如块、块组和批次,具体取决于它们的用途。上述解释假设了一个情况,即一个集中式序列器具有强大的权威来执行交易,并且还生成统一的数据块格式为批次。)

与Optimistic Rollups不同,得益于ZKPs(例如ZK-SNARKs或ZK-STARKs),ZK Rollups可以通过验证一个简单的证明来验证数千个交易的执行正确性,而无需重播所有交易。那么,这个ZKP是什么,它有什么特性呢?

ZKPs的两个属性:零知识和简洁性

顾名思义,ZKP基本上是一种证明。证明可以是任何能够充分支持提供者声明的东西。假设Bob(提供者)想要让Alice(验证者)相信他对自己的笔记本电脑有权威。证明这一点最简单的方法是,Bob只告诉Alice密码,Alice在笔记本上输入密码并验证Bob确实有权限。然而,这个验证过程对Alice和Bob来说都是不满意的。如果Bob设置了一个非常长且复杂的密码,Alice要正确输入将非常具有挑战性(假设Alice不能复制粘贴)。更现实的是,Bob可能不愿意透露他的密码给Alice以证明他的权限。

如果有一种验证过程,Alice可以迅速验证计算机的权限,而无需Bob透露他的密码呢?例如,Bob可以在Alice面前用指纹识别解锁笔记本电脑,正如图3中所示(注意这不是ZKP的完美示例)。这是Alice和Bob都可以从ZKPs的两个关键属性中受益的地方:零知识属性和简洁性属性

ZK Rollups

图 3:零知识和简洁性的高级直觉

来源:imgflip

零知识(ZK)

零知识属性指的是提供者生成的证明除了证明的有效性外,不会泄露关于秘密见证人(即私有数据)的任何信息,使验证者对数据一无所知。在区块链中,这一属性可以用于保护个人用户的隐私。如果对每笔交易应用ZKPs,用户可以证明他们的行为的合法性(即证明一个用户有足够的资金进行交易)而不暴露他们的交易细节(例如转账、账户余额更新、智能合约部署和执行)给公众。

简洁性

简洁性属性指的是ZK能够从大尺寸的声明生成一个短小且快速验证的证明,换句话说,它将大的东西压缩成紧凑的形式。在区块链中,这一点特别用于rollups。使用ZKPs,L2中的验证者可以通过向L1中的验证者提交一个简洁的证明来声称交易的正确执行(TB级交易的有效性可以用10~100 KB的证明表示)。然后,验证者可以通过验证简洁的证明而不是重播所有交易,在短时间内(即10毫秒至1秒)轻松确认执行的有效性。

ZK Rollup很棒,但并不意味着隐私性

上述ZKP的特性在ZK Rollups中得到了很好的利用。虽然验证者无法从提供者接收的ZKPs中推断原始交易数据,但验证简洁的证明允许他们有效地验证提供者的声明(即新的L2状态)。也就是说,断言当前的ZK Rollups完全遵循零知识和简洁性属性是误导的。这可能在专注于提供者与验证者之间的互动时是正确的,但ZK Rollups中还存在其他组成部分,如序列器、提供者和rollup节点。那么,“零知识”原则也为他们确保了吗?

在任何ZK Rollups中用ZKPs实现完全隐私的挑战来自于,如果其他部分保持公开而某些部分通过ZK变为私有时可能出现的妥协。想想ZK Rollups中的交易生命周期,当交易从用户发送到序列器时,隐私是否得到维护?对于提供者呢?或者当L2批次提交到DA层时,个别账户信息的隐私是否得到保护?目前这些情况都不成立。

ZK Rollups

图 4:ZK rollups 中的隐私泄露

来源:Presto 研究

在大多数主流的ZK Rollups中,序列器或提供者(或其他具有强大权限的集中化实体)能清晰地看到交易细节,包括转账金额、账户余额更新、合约部署和执行。举一个简单的例子,你可以通过访问任何ZK Rollup区块浏览器轻松观察到所有提到的细节。不仅如此,考虑一种情况,集中式序列器某种原因停止服务,另一个rollup节点试图恢复rollup状态。它将从DA层(在大多数情况下是L1 Ethereum)公开发布的L2数据中提取信息,并重建L2状态。在这个过程中,任何能够重播DA层存储的L2交易的节点都能恢复关于每个用户账户状态的信息。

因此,“零知识”的术语在当前的ZK Rollups中以碎片化的形式实施。虽然这不能被认为是错误的,但很明显,它与“ZK意味着零知识等同于完全隐私”的普遍认知不同。当前ZK Rollups的新颖之处在于利用“简洁性”属性而不是“零知识”,即在链下执行交易,并为验证者生成简洁的证明,以便他们可以快速且可扩展地验证执行的有效性,而无需重新执行它们。

出于这个原因,一些ZK Rollups,如Starknet,将自己称为“有效性Rollups”,以避免混淆,而确保真正ZK隐私的其他,如Aztec,将自己标记为ZK-ZK rollups。

深入考量ZK Rollups的实用性

正如前文提到的,大多数ZK Rollups并未完全实现ZK隐私。那么,我们的下一个目标是什么?通过在Rollup的每个部分全面部署ZK来实现完全的交易隐私?事实上,这并不是一个简单的问题。除了需要显著的技术进步以进一步成熟技术外,ZK在意识形态(例如私人交易的非法使用)和实用性(例如它真的有用吗?)方面仍存在争议问题。鉴于讨论完全交易隐私的道德问题超出了本文的范围,我们将关注区块链项目中遇到的ZK Rollups的两个实用性问题。

第 1 点:生成 ZKP 可能是快速确定性的瓶颈

首先让我们讨论ZK Rollups本身的实用性。ZK Rollups最引人注目的卖点是由于其交易的“快速终结”而使资产提取延迟时间缩短,这得益于ZKP。提高的TPS和低交易费用是额外好处。最有效利用ZK Rollups特性的领域是游戏行业,因为游戏内货币的存取非常频繁,每秒都会产生大量的游戏内交易。

但ZK Rollups真的可以被认为是游戏的最佳技术栈吗?对此,我们需要更深入地思考ZK Rollups中的“快速终结”概念。想象一下,一个用户正在享受运行在基于ZK Rollup的技术栈的Web3游戏。用户将游戏内物品交易成游戏币,并试图从游戏中提取该资产。

要提取资产,游戏内交易必须被终结。这意味着交易必须被包含在新的Rollup状态承诺中,相应的ZKP应提交到L1,并且需要等待L1以太坊中证明的终结,以保证交易不可逆转。如果所有这些过程能瞬间发生,那么我们就能实现ZK Rollups常被吹嘘的“即时交易确认”,允许用户立即提取资产。

然而,现实远非如此。根据L2beat提供的不同ZK Rollups的终结时间统计数据,zkSync Era大约需要2小时,Linea需要3小时,而Starknet平均需要约8小时。这是因为生成一个ZKP需要时间,将更多交易包含在一个批次(即单一证明)中以减少交易费用也需要额外时间。换句话说,生成和提交证明的速度是实现ZK Rollups快速终结的潜在瓶颈,这可能会降低Web3游戏中的用户体验。

ZK Rollups

图 5:ZKP 生成可能是 ZK rollups 快速确定性的潜在瓶颈

来源:imgflip

另一方面,像Ronin这样为游戏优化的链(支持如Pixels和Axie Infinity等Web3游戏)确保了超快终结,同时牺牲了去中心化和安全性。Ronin不是基于ZK或Rollup的链:它是一个在PoA(权威证明)+ DPoS(委托权益证明)共识算法下运行的EVM区块链。它根据委托的股份数量选择22个验证者,然后这些验证者以PoA方式(即仅在22个验证者之间的投票过程)生成和验证区块。因此,在Ronin上,交易能够迅速完成终结,几乎没有延迟被包含在区块中,并且验证时间很短。在Shillin硬分叉后,平均每个交易只需要6秒钟就能完成终结。Ronin实现了所有这些,而无需ZKP。

当然,Ronin也有缺点。由中心化验证者管理使其相对更容易受到51%攻击的威胁。此外,由于它不使用以太坊作为结算层,它无法继承以太坊的安全性。使用跨链桥也存在安全风险。但从用户的角度来看:他们会在意这些吗?当前没有去中心化排序的ZK Rollups也存在单点故障(SPOF)问题。以太坊为它们提供了保证,因为它减少了交易回滚的可能性,但如果中心化的序列器或验证者出现故障,ZK Rollups也会冻结。再次注意,ZK Rollups中的“ZK”仅用于验证执行正确性的有效性。如果有另一个项目提供相同的功能但更快更便宜,ZK Rollups可能不再被Web3游戏用户和开发者视为首选技术栈。

第 2 点:发布状态差异是一把双刃剑

另一点是 ZK Rollup 协议实现的实用性。其中,这里我们重点关注状态差异发布,这是在 ZK rollups 中确保数据可用性的方法之一(参见 Unlocking Dencun Upgrade: Unseen Truth of Scaling DA Layers, Jaehyun Ha, 12Apr24)。

理解Rollups中数据可用性的一个简单方法是想象一个业余登山者证明并记录他攀登珠穆朗玛峰的过程。最简单的方法是从基地营到山顶的每一步都录制成视频。尽管视频文件可能很大,但任何人都可以验证登山者的攀登过程,并可能重播录像。这个比喻可以类比于确保数据可用性的原始交易数据发布方法。Optimistic Rollups遵循这种方法,以便个别挑战者重播并验证正确的执行,因为无法信任序列器的状态承诺。在ZK Rollups中,Polygon zkEVM和Scroll采用这种方法,在L1上以压缩形式存储原始L2交易数据,以便在需要时任何人都可以重播L2交易以恢复Rollup的状态。

回到业余登山者的例子,另一种验证方法可能是一位著名的登山者与业余登山者一起攀登珠峰,以向世界证明登山确实完成。由于攀登已经由可信的个人证实,登山者不再需要记录每一步以作记录。只需在起点和山顶拍摄一张照片即可,其他人就会认为登山者已经到达了山顶。这个比喻反映了用于确保数据可用性的状态差异方法。在ZK Rollups中,zkSync Era和StarkNet采用这种方法,仅存储L2交易在L1上执行前后的状态差异,以便在必要时任何人都可以从初始状态计算状态差异以恢复Rollup的状态。

ZK Rollups

图 6:原始交易发布与状态差异发布

来源:Presto 研究

这种状态差异方法无疑在成本上比原始交易数据发布方法有利,因为它可以省去存储中间交易的步骤,从而减少L1的存储成本。尽管这通常不是问题,但这里还是有一个潜在的缺陷:这种方法不允许恢复完整的L2交易历史,这对某些DApps可能是一个问题。

以Compound这个DeFi借贷协议为例,假设它是建立在基于状态差异的ZK Rollup技术栈之上的。这些协议需要完整的交易历史以每秒计算供应和借贷利率。但是,如果ZK Rollup序列器出现故障,其他Rollup节点试图恢复最新状态会发生什么?它可能恢复状态,但利率将被不准确地恢复,因为它只能跟踪批次之间的快照而不是每个中间交易。

结论

本文主要断言,大多数当今的ZK Rollups中并不存在“ZK”,在 DApp 中的很多地方,使用 ZKP 和 ZK 程序可能不是最佳选择。ZK技术可能因被指责而感到无辜,因为它本身并没有什么问题,只是在利用其技术进步的过程中,它可能会带来DApps的潜在性能下降。然而,这并不是说ZK技术对这个行业毫无用处。当 ZKPs 和 ZK rollups 最终技术成熟时,它们肯定可以提供更好的解决方案来解决区块链三难问题。实际上,目前已有基于 ZK 的项目维护了 ZK 隐私,也有许多类型的 DApps 有效利用了 ZKP 和 ZK 卷积的优势。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。