原文作者:Linea 原文来源:mirror
我们将为所有读者解析 zkEVMs 的基础知识,无论他们对 web3 的熟悉程度如何。
零知识以太坊虚拟机(zkEVMs)被视为以太坊实现无限扩展性计划的关键组成部分。它们大大简化了开发人员的构建过程,并提供了一个低成本且安全的创新环境。
然而,要完全理解 zkEVM 是什么以及它在以太坊下一阶段发展中的重要性往往很困难。在这里,我们将以易于理解的方式为你解析 zkEVMs 的基础知识,无论你对 web3 的熟悉程度如何。
我们将从 zkEVMs 的高级概述开始,了解支撑这项新兴、令人兴奋的技术的各个组成部分。然后我们将讨论为什么 zkEVMs 对于扩展 web3 和推动其采用至关重要。最后,我们将把 Linea 与以太坊生态系统中的其他 zkEVM 项目进行比较。
ELI5:WTF 是 zkEVM?
zkEVM 是一个虚拟机,它执行智能合约并使用零知识证明(也称为“有效性证明”)证明执行的正确性。zkEVMs 重现了以太坊设计的一些方面,因此为开发人员和用户提供了“类以太坊”的体验。当与 rollup 技术结合时,zkEVM 为去中心化应用程序(dapps)及其用户提供了无与伦比的安全性和可扩展性。
我们在这里不会深入解释零知识证明,但你可以阅读《零知识证明:STARKs vs SNARKs》以获取全面的介绍。虽然有不同类型的有效性证明,但它们都有一个共同的特性:你可以证明对某些信息(例如,“我拥有5个ETH”)的了解,而无需揭示底层信息(例如,显示你的钱包余额)。
最初,零知识证明主要用于增强 web3 应用程序的隐私性——例如 ZCash(私人支付)、MACI(匿名链上投票)和 Aztec(私人智能合约)。但研究人员很快找到了有效性证明的更有吸引力的用例:可验证的计算。
可验证计算方案使“弱”计算机能够将计算外包给功能更强大的、尽管不受信任的客户端计算机,并验证结果的正确性。在这里,客户端返回结果以及用于确认正确执行计算的证明。重要的是,验证证明所需的努力应该小于从头开始执行计算。
ZkEVMs 使用零知识证明来证明程序正确执行,将可验证计算带入公共区块链领域。在这种情况下,可验证计算对于提高区块链的安全性和可扩展性非常有用。
可以将 zkEVM 视为一台可以执行任意操作的计算机,例如将两个整数相加(“func(a + b = c)”)。用户将输入传递给程序(例如,“a = 3”和“b = 2”),全节点在 zkEVM 中使用这些输入执行程序以产生输出(“c = 5”)。
与此同时,程序的执行跟踪被编译成用于证明的“算术电路”(即,翻译成一系列数学陈述)。这允许全节点生成一个零知识证明,以确认程序正确执行。在这种情况下,证明电路验证有关程序执行的详细信息,例如:
谁调用了程序的函数?
调用者是否向程序传递了正确的输入?
执行是否使用了正确的程序?
最终的输出是否是使用提供的输入正确执行程序的结果?
由于证明电路验证了执行的计算完整性,网络上的其他节点不需要重新执行程序以验证建议的输出。节点只需要检查零知识证明以确认 zkEVM 的新状态(执行程序后)是正确的。
在一个“不信任,验证”系统中,验证者可能要求向证明电路提供公开的输入,包括程序的初始和最终状态以及传递给函数的参数(或对这些值的加密承诺)。这确保了 SNARK 证明所验证的计算使用正确的输入值进行,并得出了正确的输出。
但这主要是为了冗余:电路逻辑的约束防止了证明者创建假证明(除非证明电路被破坏)。实际上,validiums 是将所有数据离链发布同时保持高安全保障的 zkEVM 链。
这个系统的关键好处是什么?验证程序执行的 SNARK(简洁的非交互式知识论证)证明消耗的资源显著少于原始计算。ZkEVM 节点不必重新执行每个交易以确认其有效性,极大地提高了网络以更快的速度处理更多交易的能力。
以太坊的 zkEVM 扩展解决方案
我们也可以将可验证计算扩展到另一个区块链的交易吞吐量扩展。在这种情况下,“资源受限”的区块链可以将计算卸载到一个次级的、高吞吐量的网络,同时保留验证交易是否正确执行的能力。零知识 rollups,一个用于以太坊(使用 zkEVM 作为运行时环境)的扩展解决方案,就基于这个想法。
Zk-rollups 通过在一个单独的环境(描述为第2层)中执行交易,从而减轻了以太坊的计算负载。在一定的时间间隔内,rollup 的操作员会将许多用户交易聚合成一批,并提交给以太坊上的智能合约。它还提交一个有效性证明,确认链下交易正确执行,新的状态是正确的。
但我们为什么需要扩展以太坊呢?
正如你所知,以太坊虚拟机(EVM)是一个分布式计算环境(又名“世界计算机”),它支持 dapps。EVM 提供了许多好处,如安全性和去中心化,但在过程中牺牲了可扩展性。简而言之,EVM 是一个非常安全的计算机,但它的速度很慢,使用成本很高。
多年来,“EVM兼容”的侧链和rollup已成为解决以太坊可扩展性问题的最受欢迎的解决方案。这些区块链实现了以太坊执行层(EVM)的分叉版本,但对其进行了优化,以实现更快的执行和更低的每笔交易成本。
有人会说这些解决方案并没有直接扩展以太坊,但它们确实使开发者能够在可扩展的链下层运行以太坊dapp,并允许用户以少量以太坊成本使用这些应用。以太坊也会(间接地)受益于用户转移到其他区块链,减轻底层拥堵并降低现有用户的Gas价格。
这并不意味着所有扩展解决方案都同样优秀。例如,侧链不受以太坊保护,因此用户资金的安全取决于侧链验证者的诚实。在最坏的情况下,一个腐败的验证者集合可以轻易地窃取存放在桥上的资金,或者阻止用户提取资金(通过审查交易)。
Rollup 在以太坊上结算交易,继承了其安全性和去中心化特性;尽管如此,不同的 rollup 构造有不同程度的安全性。“乐观 rollup”假设提交到以太坊L1的交易批次是有效的,并依赖激励的一方(“观察者”)通过欺诈证明质疑无效的执行。然而,这种方法存在一些问题:
诚实假设:为了保持 Optimistic Rollup的安全性,必须有人可以验证rollup 交易并质疑无效的操作。Optimistic Rollup 假设存在诚实的验证者(“1-of-N安全模型”),在某些情况下,这个假设可能无法成立。
提款延迟:由于观察者需要时间提出质疑,Optimistic Rollup 对提款施加了延迟。这种延迟(在一到两周之间)可能会对在L2上进行交易的用户的体验产生负面影响。
增加交易费用:Optimistic Rollup不信任排序器以避免数据扣留攻击,因此在以太坊上发布完整的交易数据以实现 rollup 区块的去中心化验证。这提高了安全性,但也增加了交易费用,因为将数据存储在链上的成本转嫁给了用户。
相比之下,运行 zkEVM 的通用 zk-rollups 被认为是 "扩展的圣杯",因为它们提供了你期望的以太坊扩展解决方案的好处,而不牺牲安全性或引入信任假设。我们在下面更详细地讨论了 zkEVM 的好处:
EVM兼容性
ZkEVMs 完全兼容用于在以太坊虚拟机中运行的智能合约。此外,像 Linea 这样的二型 zkEVM 与 EVM 基础设施(包括开发者工具,区块浏览器和钱包)无缝集成。这意味着什么?Web3 开发者可以在不产生切换成本的情况下将现有的以太坊应用迁移到 L2。更好的是,你可以使用熟悉的开发堆栈从头开始构建新的应用——例如,zkEVMs 可以执行用 Solidity 编写的智能合约。
安全性
zkEVM 的安全保证很简单:零知识证明保证区块生产者不能执行无效的状态转换。也就是说,只要关于底层证明电路的加密假设——比如伪造假证明的不可能性——成立。简而言之,zkEVM 让你 "信任数学,而不是验证者"。
现在,有效性证明确保了安全性,但并不保证活性和数据可用性——这就是为什么 zkEVM 区块链依赖以太坊来强制这些安全性质。我们不会在这里深入技术细节,但这种安排提供了以下保证:
用户总是可以通过向以太坊上的 L2 合约发送退出交易,从 zk-rollup 中提取资金。
恶意的 rollup 操作员不能冻结 rollup 或隐藏区块链的状态;只有当数据在链上发布时,以太坊网络才会确认 L2 区块。这确保了用户始终能够访问状态数据,并且诚实的节点可以重构 L2 的最后状态并产生新的区块。
可扩展性
ZkEVM 设计为具有高度可扩展性。虽然 EVM 要求每个网络参与者在达成共识之前重新执行交易,但 zkEVM 使用的是非交互式证明。这提高了吞吐量,减少了延迟,因为验证 L2 区块的证明比重新执行新提议的区块中的每个交易更快。
但等等,还有更多!通过使用“递归证明”,ZkEVM 可以进一步提高吞吐量。递归证明是通过合并多个有效性证明生成的,这样,验证单个证明也就验证了所有底层证明的有效性。
当提交给以太坊 L1 上的证明验证合约时,一个递归证明允许同时确定几个 L2 区块。这显著减少了 L2 顺序器在提交证明到 L1 的基础上逐块生成区块的时间。
改进的用户体验
在加密货币的世界中,当一个交易或区块被区块链网络中的大多数人接受并且不能被逆转(除非花费大量资源)时,它被“确定”了。确定性是比较 rollup 解决方案的一个好的启示方法,因为它决定了用户必须等待多久才能提取存入 rollup 的资金。
你会经常听到 zkEVM 有“快速确定性”。这只是意味着以太坊在 zkEVM rollup 上进行的交易(包括提现操作)比在普通的乐观 rollup 上完成的时间更短。这有重大的影响,如在去中心化金融(DeFi)行业的投资者可以享受更好的流动性。
降低成本
ZkEVM rollup 可以选择只在以太坊 L1 上发布对其最终状态的承诺,从而减少链上存储成本。由于有效性证明保证了 zkEVM 新状态的正确性,因此顺序器不必发布所有数据(包括未压缩的交易输入)以重新执行状态转换更改。相比之下,乐观 rollup 必须在 L1 上发布原始交易数据,以便诚实的观察者可以独立计算 L2 的新状态,并可能质疑无效的转换。
你可以用 zkEVM 做什么?
DeFi:由于从 zkEVM rollup 提现的延迟较低,交易员和投资者将享受更好的资本效率和更多的流动性获取途径。而且,由于不需要支付流动性提供商更快出可扩展性的成本节省将呈指数级增长。
NFT:凭借极低的燃气费和高TPS(每秒交易量),zkEVM链是大规模铸造和交易NFT的理想选择。此外,当将NFT转移到以太坊L1时,您将获得更好的用户体验,因为提款将立即得到最终确定(一旦链上验证器合约接受提交的证明)。
游戏:对于处理大量交易的链上游戏应用程序,zkEVM是理想的选择。除了前面描述的可扩展性优势之外,链上玩家每笔交易的成本更低——这归功于zkEVM的数据压缩能力。
企业应用:企业可以利用zkEVM对通用计算的支持,为用户开发可扩展的应用程序。我们还应该注意,zkEVM Rollup很适合引导高度安全的“第3层”区块链。有了L3基础设施,机构可以构建可定制以提供独特功能的应用特定区块链。一个好的例子是一个validium,它将有效性证明发布到zkEVM区块链(最终在以太坊L1上进行验证),但将数据存储在链下,以保护用户的隐私。
支付:zkEVM优化了规模(也就是说,这个去中心化的计算机非常快速,使用成本极低),因此非常适合进行点对点支付和进行机构结算。您还拥有强大的交易最终确定性保证,这是由以太坊的高度分散网络(50万+验证器并且还在增加)直接执行的。
Linea:放诸四海而皆准的zkEVM
Linea是一个等同于EVM的zk-rollup,其执行引擎是Type 2 zkEVM。Linea由在证明和可扩展性技术方面有深厚经验的团队开发,旨在以一部分成本将以太坊体验带给开发者和用户。
作为一个Type 2 zkEVM,Linea优先考虑与所有以太坊应用程序和基础设施的兼容性。分析不同的zkEVM设计超出了我们的讨论范围(Vitalk的zkEVM类型更详细地讨论了这个话题);
然而,您可以期望从使用Linea zkEVM获得以下好处:
与EVM钱包(MetaMask),开发者工具(Truffle,Remix,Brownie,Foundry,Hardhat等)以及像节点提供商(Infura)和执行客户端(Besu)这样的关键基础设施无缝集成
与以太坊的体验几乎完全相同——例如,Linea使用ETH进行燃气费支付
具备以太坊扩展解决方案的所有优点(低费用,近乎即时确认,高TPS)而没有竞争项目固有的任何缺点(最终确定性延迟,高成本和糟糕的安全性)
为您提供等同于EVM的基础设施,以便解锁新的用例和构建新颖的应用程序,同时受益于以太坊的安全性,去中心化和开发者体验
Linea的公共测试网已经上线,自最初公告以来,我们已经记录了令人难以置信的参与水平。现在,您也可以加入其他人,共同构建Linea的未来:
您是一位希望与Linea一起构建下一代可扩展dapps的开发者吗?通过参与Linea Voyage并帮助我们对网络进行压力测试来开始您的旅程。您还可以查看开发者快速入门,文档和教程。
您是一位对试用Linea感兴趣的用户吗?从Goerli水龙头获取一些ETH,将资金桥接到L2,然后开始在Linea测试网上使用dapps。为了让事情变得更容易,Linea是MetaMask的默认网络,所以您不必手动导入新网络。