零知识证明 (ZKP) 和零知识汇总 (ZK-Rollups) 如何帮助解决可扩展性问题

中级4/9/2024, 2:15:32 AM
在本文中,我们将解释什么是零知识证明技术,并谈论一个流行的区块链项目 — zkSync:zkSync中的交易如何运作以及与以太坊虚拟机(EVM)的主要区别。

转发原文标题《ZKP和ZK-Rollups 如何帮助解决可扩展性问题》

在这篇文章中,我们将解释什么是零知识证明技术,并讨论一个流行的区块链项目 — zkSync:zkSync中的交易如何运作以及与以太坊虚拟机(EVM)的主要区别。同时讨论这个区块链的优点和缺点,我们认为它可能有一个充满希望的未来。

ZkSync是以太坊的第二层区块链(Layer 2 — L2),旨在解决以太坊网络的高费用和有限吞吐量(每秒交易数 — TPS)等问题。该平台采用ZK-Rollup技术,利用零知识证明(ZKP)批量处理主网络(L1)之外的多个交易。只有交易正确性的加密证明和它们的压缩数据被发送到L1,大大提高了效率并降低了成本。

Matter Labs开发,zkSync被宣称为完全开源(100%开源)的产品,由社区管理。据Cryptorank称,该项目已经引起关注,筹集了4.58亿美元的投资。从长远来看,Matter Labs旨在创建一个全面的生态系统。目前,有两个区块链正在运作:zkSync Lite,用于处理以太币和ERC20代币的支付,以及zkSync Era,支持完整的智能合约。未来计划包括推出一个超级链系统(L3),确保高安全性。Matter Labs的目标是将这项技术扩展到一个吸引下一个十亿区块链用户的水平。

背景

zkSync代表了一种解决被称为区块链三难题的可扩展性问题的新方法。这个项目,像其他第二层(L2)解决方案一样,旨在在区块链网络中找到安全性、可扩展性和去中心化之间的平衡。

  1. 可扩展性:系统有效处理增长的交易量或数据的能力,而不损失性能和安全性。
  2. 区块链安全性:确保数据可靠性和保护免受未经授权的访问、篡改或修改。
  3. 去中心化:缺乏集中控制结构。在去中心化系统中,管理和决策权被民主地分配给所有网络参与者。

以太坊专注于安全性和去中心化,强调其作为一个点对点协议,在全球范围内分布节点。有关节点分布的最新信息,请参考NodeWatch

为了保持网络的去中心化,每个节点必须验证所有交易。这本质上会拖慢网络速度。此外,在网络负载高的情况下,交易可能会变得非常昂贵,并且需要大量时间来处理。

第2层

提高以太坊网络TPS而不增加节点负载的主要任务是引入分片技术,结合过渡到PoS(股权证明)共识机制。这涉及将验证者分成子组,处理网络的不同部分,从而减少总体负载并增加吞吐量。然而,社区已经将注意力集中在第二层解决方案上,考虑到它们的快速发展。

除了在以太坊中实施分片技术的想法之外,还出现了其他的可扩展性解决方案,比如:

  • 支付和状态通道
  • 侧链
  • Plasma
  • Optimistic Rollup

以及基于零知识证明(ZKP)的技术,包括:

  • Validium
  • zkRollup
  • Volition

更详细的信息可以找到这里

尽管分片技术仍在开发中,但Dencun硬分叉计划于2024年初实施Proto-Danksharding。这个中间步骤旨在改进第二层解决方案,使L1上的数据存储更经济。因此,Proto-Danksharding承诺降低L2上的交易成本,作为向全面分片解决方案迈出的一步。

乍看之下,第二层区块链可能看起来相似,因为它们的主要任务是在L1之外增加交易数量,同时将安全保障的角色委托给L1。这类区块链的开发者通常声称他们的解决方案是最快、最可靠和最简单的。但实际上,扩展的每种方法都有其细微差别,以及关于交易速度、安全级别或去中心化程度的不可避免的妥协。完全中心化的解决方案也很常见。所有这些方面都将我们带回到区块链三难题的根本问题。

本文,提出了评估第 2 层解决方案中使用的协议的关键标准。他们包括:

  • 安全,
  • 性能和经济效益,
  • 使用便捷性,
  • 额外方面包括智能合约支持、EVM字节码兼容性和隐私选项。

重要提示!这篇文章是由Matter Labs撰写的,据我看来,某些内容“拉伸”了对zkRollup的支持(因为存在明显的利益冲突),但这并不那么重要,主要是要看到第二层协议之间存在哪些区别。下面我将提供一个表格,并简要描述其内容。

安全性

  • 第二层协议的“活跃性”或“可行性”假设。假设为了维持第二层功能,总会有一些参与者始终在第一层链上,以应对潜在的欺诈案例。这些参与者可能是在L1上抵押了一定数量资金的验证者(在表格中标记为“已抵押”),也可能是为了奖励而确保协议安全的第三方。从表格中可以看出,使用ZKP(Validium和zkRollup)的解决方案不需要这种必要性。
  • 大规模退出问题。出于安全原因,如果需要启动所有用户从L2到L1的资金提取,则会出现的问题。从表格中可以看出,这个问题仅存在于Plasma协议中,更多相关信息可以在这里阅读。
  • 托管。L2验证者是否可以暂时阻止或没收用户的资金。
  • 经济脆弱性。包括对L2验证者的各种攻击,包括贿赂L1矿工、创建“影子”DAO等经济动机驱动的攻击。
  • 密码学。标准和新密码原语之间的区别。标准密码原语更受研究,但潜在脆弱,而新密码原语(如SNARK和STARK)提供更高的可靠性,但需要开发者额外的知识和审核。

性能和经济性

性能方面很直接。每秒交易数(TPS)表示网络的吞吐量,在扩展的背景下,它是最关键的参数。

经济方面:

  • 资本效率:这一方面对于支付通道尤为重要。它们需要冻结等于通道中操作的平均量的资金,使得它们在资本投资方面效率较低。
  • 在L1上创建L2账户的交易:这也是支付通道的一个缺点,因为在所有其他解决方案中,在L1上创建的账户默认在L2中运作。
  • 交易成本:与TPS一样,这是可扩展性的最关键因素之一,决定了解决方案的经济吸引力。

使用便捷性

  • 从L2到L1的提款时间:这段时间可以从几分钟到几周不等。在这方面,Optimistic Rollups和Plasma尤其不方便,因为它们需要更长的时间来提取资金。
  • 交易主观最终性的时间:确定了交易从外部观察者的角度在L1上变得不可撤销的速度。例如,在Optimistic Rollups中,只需要在以太坊上确认一次,就可以实现在L1上的最终性,但完全的交易最终性大约需要一周的时间。
  • 通过客户端代码验证主观最终性:确定了轻客户端(浏览器/移动钱包)是否可以检查主观最终性的时间。以Optimistic Rollups为例,要确认交易的最终性,用户必须下载并验证过去一周的整个状态Rollup。
  • 即时交易确认:协议是否可以提供具有完全保证的即时交易确认?还是只在L2共识层面提供此保证。
  • 即时可见最终性:可以在大多数L2协议之上实现,这意味着交易在用户界面中会立即得到确认。只有支付通道(状态通道)为这些确认提供了完全的安全保证,而在其他协议中,这些交易在在L1中得到确认之前的一段时间内仍然可以被撤销。

其他方面

  • 智能合约:考虑L2解决方案是否支持完全可编程的智能合约,或者仅通过谓词支持一组有限的功能。
  • 与EVM字节码兼容性:评估将现有的以太坊EVM字节码智能合约转移到L2的可行性,而无需进行重大更改。
  • 内置隐私支持:考虑隐私保护在L2解决方案中的效率,特别是在机密交易的可用性和成本效益方面。

下面是基于ZKP的主要解决方案的对比表:

为了更详细地了解零知识证明(ZKP),我建议参考我们的区块链百科中的这篇文章,该百科由开发人员为开发人员创建,对证明和深入细节进行了深入探讨。

zkSync 中的交易生命周期

ZK-Rollups的操作可以在高层次上表示如下:

  1. Rollup组成:交易被打包成一个Rollup。
  2. ZKP的创建:形成一个零知识证明。
  3. 在以太坊中验证:证明被发送到一个以太坊智能合约进行验证。

在zkSync架构的背景下,该过程如下:

  1. 内部块的收集:zkSync验证者每隔几秒钟收集来自交易的内部块。
  2. 区块包的形成:每30-90秒,从内部块创建一个区块包。
  3. 区块链状态承诺:验证者记录区块链的当前状态,并将修改后的数据作为calldata传输到L1,以便进行可能的恢复。
  4. SNARK的计算和提交:验证者计算该包的SNARK(ZKP)并将其发送到以太坊智能合约进行验证。验证完成后,新的网络状态变为最终状态。

在ZK-Rollups中,验证者扮演着关键角色,将交易打包成区块并为其生成零知识证明。该系统的一个特点是,验证者在物理上无法窃取资金。他们可能造成的最重大潜在损害是暂时停止网络的运行。

注意:在zkSync Era中,验证者的角色由运营者来执行。

zkSync的开发人员强调他们架构的以下保证:

  1. 资金安全:运营者永远不会损害网络状态或窃取资金,这与侧链相比是一个优势。
  2. 资金恢复的可能性:即使运营者停止运营,用户仍然可以提取他们的资金。这得益于数据的可用性,与Plasma系统不同。
  3. 独立于监控:由于ZKP的存在,用户或可信第三方不需要持续监控Rollup区块以防止欺诈行为,这与基于欺诈证明的系统(如支付通道或乐观Rollup)相比是一个优势。

在zkSync Era中,交易经历了几个关键状态,与L1中的常规Rollup确认不同:

  • 待处理:交易已被运营者接收,但尚未被处理。
  • 处理中:交易正在由运营者处理,并准备好包含在下一个区块中。
  • 已提交:交易数据已发布在以太坊上,确保数据可用性,但并未确认其正确执行。
  • 已执行:最终阶段,交易的有效性证明(SNARK)由以太坊智能合约进行验证,使交易最终确定。

除了区块编号外,zkSync中的交易还显示了包编号。最初,参数如block.number、block.timestamp和blockhash都是从L1获取的。然而,在更新后,这些值现在将从L2获取。尽管如此,开发人员计划提供访问来自L1的数据的方法。

zkEVM 和 EVM 之间的差异

基于ZKP的L2解决方案与以太坊的兼容性是一个复杂的任务。这是因为以太坊最初并不是为与ZKP的最佳交互而设计的。因此,在开发这样的系统时,必须在性能和可扩展性潜力之间找到一种折衷,同时与以太坊和EVM保持兼容性。Vitalik Buterin的文章“不同类型的ZK-EVMs”详细讨论了这些方面,并突出了不同级别的兼容性。

zkSync选择了其中一条最具挑战性的道路,旨在实现高性能,但与以太坊和EVM的兼容性有限。为了获得与zkEVM兼容的字节码,使用了LLVM项目以及一套专有的编译器和优化器。对于Solidity和Yul,经过标准的solc编译器之后,代码还必须经过几个更多的阶段,才能变成zkEVM字节码。下面的图示展示了这个过程的所有阶段(在这里描述得更详细):

重要提示!zksolc中支持优化。

专门为EVM编译的字节码与zkEVM不兼容。这意味着以太坊和zkSync中相同智能合约的地址将不同。然而,开发人员计划在未来解决这个问题。

这种方法的一个重要优势是不依赖于特定的编程语言。未来,zkSync的开发人员承诺添加对诸如Rust和C++之类的语言的支持。重要的是,高级编译器(例如solc)和平台编译器(例如zksolc)之间的更新和创新集成的延迟是最小的。最初,有一个想法是创建他们自己的编程语言Zinc,但目前团队的重点是支持更流行的编程语言。

zk-编译器与现有的Solidity和Vyper智能合约开发和调试工具的兼容性问题非常重要。目前的开发平台,如Remix、Hardhat和Foundry,在开箱即用时不支持zk-编译器,这给使用它们带来了困难。然而,正在开发的解决方案承诺简化项目迁移和适应新技术的过程。

Vitalik Buterin的文章提到,以太坊可能会努力随着时间的推移,在协议级别改善与ZKP的兼容性。同样,基于ZKP的L2解决方案将调整以更好地与以太坊兼容。因此,将来,这些系统之间的差异可能会变得几乎不可察觉,为开发人员提供更顺畅的集成和过渡。

zkEVM的特点

重要提示!该协议正在积极开发中;请始终参考最新版本的文档!

zkEVM与EVM不同,尽管开发人员努力在“底层”隐藏这些差异,但在编写智能合约时需要考虑一些重要特性:

  1. 与EVM的差异:为zkEVM编写的Solidity代码的行为可能会有所不同,特别是在诸如block.timestamp和block.number等方面。定期检查文档以了解更改是很重要的。
  2. 系统合约:在zkSync中,有用于各种功能的系统智能合约,比如ContractDeployer用于部署智能合约,MsgValueSimulator用于处理ETH。更多关于系统智能合约的信息可以在文档中找到。
  3. 部署时的代理模式:建议在部署后的前几个月使用代理模式,以防止潜在的编译器错误。
  4. Gas计算:zkEVM中的Gas计算模型与以太坊不同,包括一组不同的操作码和Gas价格依赖于L1。详情请参阅这里
  5. 本地测试:标准工具,如Hardhat Node或Anvil,并不适用于zkEVM的本地测试。而是使用特殊选项,包括fork模式测试。
  6. 签名验证:建议使用内置的帐户抽象支持,而不是ecrecover。
  7. 跟踪与Gas相关的错误:在zkSync中,由于在DefaultAccount系统智能合约内执行的特性,无法跟踪与Gas短缺相关的错误。

为了深入了解如何使用zkEVM,建议研究文档,包括“安全性和最佳实践”部分。

账户抽象

在zkSync中,账户抽象相对于ERC-4337具有几个关键优势:

  1. 实现层面:在zkSync中,账户抽象是内置在协议层面的,使得所有账户,包括外部拥有的账户(EOA),在功能上类似于智能合约。
  2. 交易处理:尽管ERC-4337为捆绑器使用单独的内存池,从而创建了两种不同的交易流,但zkSync Era只有一个内存池。这意味着来自EOA和智能合约的交易在一个流中处理,确保了更顺畅的集成和处理。
  3. 支持支付主体:zkSync支持所有类型的账户的支付主体,允许以ERC20代币配置gas费用。

zkSync 基础设施

zkSync Era的基础设施正在迅速发展,并已包括数十种协议:桥接协议、DeFi、基础设施协议等等。 (当前列表可以在此处查看)。

另一个优点是与以太坊钱包的兼容性,例如MetaMask或TrustWallet。

超级链

zkSync协议的发展始于zkSync Lite的推出,该版本仅针对以太币和ERC-20代币的转账,无法部署完整的协议。这一阶段是发展的重要步骤,但只是zkSync Era的到来之前的前奏——zkSync Era是以太坊的一个完整的L2解决方案,理论上也可以适应其他L1区块链。然而,zkSync的雄心并不止于此,因为开发计划还包括推出所谓的超级链。

超级链,或称“分形扩展”,由ZKP网络组成,每个网络形成自己的区块和证明。然后,这些证明被收集在一起并发布在主要的L1网络上。这些网络中的每一个都是整个系统的完整副本,可以被视为其“分形”。

超级链的独特之处在于它们可以独立创建和部署。为了保持一致性和兼容性,每个超级链必须使用一个共同的zkEVM引擎,作为ZK栈的一部分(其中zkSync Era充当第一个超级链)。这使得超级链能够从L1继承其安全性,确保其可靠性,并消除对额外信任和安全措施的需求。

超级链代表了扩展区块链网络的创新方法,减轻了主要网络的负载并提高了交易处理速度。该方法的关键方面包括:

  • 超级链之间的证明传输:超级链将相互传输区块证明,增加了交易到达主要L1网络前所需的距离。这有助于分散负载,避免瓶颈问题的发生。

  • 对用户的透明度:用户不会注意到任何差异——他们的交易在超级链中处理,并且在到达主网络之前可能会经过几个级别,从而在处理中创建了异步性。
  • 优于现有解决方案:与当前的L2解决方案不同,这些解决方案虽然速度更快,但在交易量上仍然存在限制,有时会在安全性上做出妥协,而超级链承诺具有显著更高的可扩展性。
  • 创建自定义区块链的灵活性:超级链允许创建具有不同安全性和隐私级别的自定义区块链和账户。即使安全级别较低,在最坏的情况下,也只会出现资金的临时冻结。

有关这一切的更多信息可以找到这里

zkSync 的优点和缺点

优点

  1. 安全性:接近L1级别的安全性,未来具备去中心化的潜力。
  2. EVM兼容性:支持与EVM兼容的智能合约。
  3. Web3 API和钱包:标准的Web3 API和对诸如MetaMask等以太坊钱包的支持。
  4. 账户抽象:原生支持账户抽象。
  5. 交易速度:在L2上进行快速交易处理,随后在L1上确认。
  6. 低费用:与L1相比,降低了Gas费用。
  7. ERC20 Gas支付:能够使用ERC20代币支付Gas费用。
  8. 不断发展的基础设施:非常活跃的基础设施发展。
  9. 可扩展性潜力:具有显著扩展性改进的机会。

缺点

  1. 有限的EVM兼容性:与竞争对手(如Polygon zkEVM、Scroll等)相比,其EVM兼容性较低。
  2. 智能合约中的错误风险:错误风险增加,需要进行彻底的测试和审计。
  3. 特定的开发栈需求:需要将开发栈适应协议的具体要求。
  4. 落后于核心技术:在编译器和库更新方面采用创新的速度有所延迟。
  5. 网络集中化:目前,网络由有限数量的运营商管理。
  6. 需要可升级的智能合约:由于以上原因,有必要在项目开始时始终制定可升级的合约,以便及时纠正缺陷和漏洞。

结论

zkSync协议看起来非常有前景,具有巨大的潜力,尽管目前,在这个区块链上启动仍然涉及一些需要考虑的风险。目前,为zkSync开发相对于与EVM和EVM开发栈更兼容的区块链来说可能更具挑战性。然而,也许在未来,这种差异将变得微不足道,甚至完全消失。

声明:

  1. 本文转载自[MetaLamp],原文标题《How ZKP and ZK-Rollups help solve the scalability problem: a review of the zkSync blockchain》,著作权归属原作者[ MetaLamp ],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。

零知识证明 (ZKP) 和零知识汇总 (ZK-Rollups) 如何帮助解决可扩展性问题

中级4/9/2024, 2:15:32 AM
在本文中,我们将解释什么是零知识证明技术,并谈论一个流行的区块链项目 — zkSync:zkSync中的交易如何运作以及与以太坊虚拟机(EVM)的主要区别。

转发原文标题《ZKP和ZK-Rollups 如何帮助解决可扩展性问题》

在这篇文章中,我们将解释什么是零知识证明技术,并讨论一个流行的区块链项目 — zkSync:zkSync中的交易如何运作以及与以太坊虚拟机(EVM)的主要区别。同时讨论这个区块链的优点和缺点,我们认为它可能有一个充满希望的未来。

ZkSync是以太坊的第二层区块链(Layer 2 — L2),旨在解决以太坊网络的高费用和有限吞吐量(每秒交易数 — TPS)等问题。该平台采用ZK-Rollup技术,利用零知识证明(ZKP)批量处理主网络(L1)之外的多个交易。只有交易正确性的加密证明和它们的压缩数据被发送到L1,大大提高了效率并降低了成本。

Matter Labs开发,zkSync被宣称为完全开源(100%开源)的产品,由社区管理。据Cryptorank称,该项目已经引起关注,筹集了4.58亿美元的投资。从长远来看,Matter Labs旨在创建一个全面的生态系统。目前,有两个区块链正在运作:zkSync Lite,用于处理以太币和ERC20代币的支付,以及zkSync Era,支持完整的智能合约。未来计划包括推出一个超级链系统(L3),确保高安全性。Matter Labs的目标是将这项技术扩展到一个吸引下一个十亿区块链用户的水平。

背景

zkSync代表了一种解决被称为区块链三难题的可扩展性问题的新方法。这个项目,像其他第二层(L2)解决方案一样,旨在在区块链网络中找到安全性、可扩展性和去中心化之间的平衡。

  1. 可扩展性:系统有效处理增长的交易量或数据的能力,而不损失性能和安全性。
  2. 区块链安全性:确保数据可靠性和保护免受未经授权的访问、篡改或修改。
  3. 去中心化:缺乏集中控制结构。在去中心化系统中,管理和决策权被民主地分配给所有网络参与者。

以太坊专注于安全性和去中心化,强调其作为一个点对点协议,在全球范围内分布节点。有关节点分布的最新信息,请参考NodeWatch

为了保持网络的去中心化,每个节点必须验证所有交易。这本质上会拖慢网络速度。此外,在网络负载高的情况下,交易可能会变得非常昂贵,并且需要大量时间来处理。

第2层

提高以太坊网络TPS而不增加节点负载的主要任务是引入分片技术,结合过渡到PoS(股权证明)共识机制。这涉及将验证者分成子组,处理网络的不同部分,从而减少总体负载并增加吞吐量。然而,社区已经将注意力集中在第二层解决方案上,考虑到它们的快速发展。

除了在以太坊中实施分片技术的想法之外,还出现了其他的可扩展性解决方案,比如:

  • 支付和状态通道
  • 侧链
  • Plasma
  • Optimistic Rollup

以及基于零知识证明(ZKP)的技术,包括:

  • Validium
  • zkRollup
  • Volition

更详细的信息可以找到这里

尽管分片技术仍在开发中,但Dencun硬分叉计划于2024年初实施Proto-Danksharding。这个中间步骤旨在改进第二层解决方案,使L1上的数据存储更经济。因此,Proto-Danksharding承诺降低L2上的交易成本,作为向全面分片解决方案迈出的一步。

乍看之下,第二层区块链可能看起来相似,因为它们的主要任务是在L1之外增加交易数量,同时将安全保障的角色委托给L1。这类区块链的开发者通常声称他们的解决方案是最快、最可靠和最简单的。但实际上,扩展的每种方法都有其细微差别,以及关于交易速度、安全级别或去中心化程度的不可避免的妥协。完全中心化的解决方案也很常见。所有这些方面都将我们带回到区块链三难题的根本问题。

本文,提出了评估第 2 层解决方案中使用的协议的关键标准。他们包括:

  • 安全,
  • 性能和经济效益,
  • 使用便捷性,
  • 额外方面包括智能合约支持、EVM字节码兼容性和隐私选项。

重要提示!这篇文章是由Matter Labs撰写的,据我看来,某些内容“拉伸”了对zkRollup的支持(因为存在明显的利益冲突),但这并不那么重要,主要是要看到第二层协议之间存在哪些区别。下面我将提供一个表格,并简要描述其内容。

安全性

  • 第二层协议的“活跃性”或“可行性”假设。假设为了维持第二层功能,总会有一些参与者始终在第一层链上,以应对潜在的欺诈案例。这些参与者可能是在L1上抵押了一定数量资金的验证者(在表格中标记为“已抵押”),也可能是为了奖励而确保协议安全的第三方。从表格中可以看出,使用ZKP(Validium和zkRollup)的解决方案不需要这种必要性。
  • 大规模退出问题。出于安全原因,如果需要启动所有用户从L2到L1的资金提取,则会出现的问题。从表格中可以看出,这个问题仅存在于Plasma协议中,更多相关信息可以在这里阅读。
  • 托管。L2验证者是否可以暂时阻止或没收用户的资金。
  • 经济脆弱性。包括对L2验证者的各种攻击,包括贿赂L1矿工、创建“影子”DAO等经济动机驱动的攻击。
  • 密码学。标准和新密码原语之间的区别。标准密码原语更受研究,但潜在脆弱,而新密码原语(如SNARK和STARK)提供更高的可靠性,但需要开发者额外的知识和审核。

性能和经济性

性能方面很直接。每秒交易数(TPS)表示网络的吞吐量,在扩展的背景下,它是最关键的参数。

经济方面:

  • 资本效率:这一方面对于支付通道尤为重要。它们需要冻结等于通道中操作的平均量的资金,使得它们在资本投资方面效率较低。
  • 在L1上创建L2账户的交易:这也是支付通道的一个缺点,因为在所有其他解决方案中,在L1上创建的账户默认在L2中运作。
  • 交易成本:与TPS一样,这是可扩展性的最关键因素之一,决定了解决方案的经济吸引力。

使用便捷性

  • 从L2到L1的提款时间:这段时间可以从几分钟到几周不等。在这方面,Optimistic Rollups和Plasma尤其不方便,因为它们需要更长的时间来提取资金。
  • 交易主观最终性的时间:确定了交易从外部观察者的角度在L1上变得不可撤销的速度。例如,在Optimistic Rollups中,只需要在以太坊上确认一次,就可以实现在L1上的最终性,但完全的交易最终性大约需要一周的时间。
  • 通过客户端代码验证主观最终性:确定了轻客户端(浏览器/移动钱包)是否可以检查主观最终性的时间。以Optimistic Rollups为例,要确认交易的最终性,用户必须下载并验证过去一周的整个状态Rollup。
  • 即时交易确认:协议是否可以提供具有完全保证的即时交易确认?还是只在L2共识层面提供此保证。
  • 即时可见最终性:可以在大多数L2协议之上实现,这意味着交易在用户界面中会立即得到确认。只有支付通道(状态通道)为这些确认提供了完全的安全保证,而在其他协议中,这些交易在在L1中得到确认之前的一段时间内仍然可以被撤销。

其他方面

  • 智能合约:考虑L2解决方案是否支持完全可编程的智能合约,或者仅通过谓词支持一组有限的功能。
  • 与EVM字节码兼容性:评估将现有的以太坊EVM字节码智能合约转移到L2的可行性,而无需进行重大更改。
  • 内置隐私支持:考虑隐私保护在L2解决方案中的效率,特别是在机密交易的可用性和成本效益方面。

下面是基于ZKP的主要解决方案的对比表:

为了更详细地了解零知识证明(ZKP),我建议参考我们的区块链百科中的这篇文章,该百科由开发人员为开发人员创建,对证明和深入细节进行了深入探讨。

zkSync 中的交易生命周期

ZK-Rollups的操作可以在高层次上表示如下:

  1. Rollup组成:交易被打包成一个Rollup。
  2. ZKP的创建:形成一个零知识证明。
  3. 在以太坊中验证:证明被发送到一个以太坊智能合约进行验证。

在zkSync架构的背景下,该过程如下:

  1. 内部块的收集:zkSync验证者每隔几秒钟收集来自交易的内部块。
  2. 区块包的形成:每30-90秒,从内部块创建一个区块包。
  3. 区块链状态承诺:验证者记录区块链的当前状态,并将修改后的数据作为calldata传输到L1,以便进行可能的恢复。
  4. SNARK的计算和提交:验证者计算该包的SNARK(ZKP)并将其发送到以太坊智能合约进行验证。验证完成后,新的网络状态变为最终状态。

在ZK-Rollups中,验证者扮演着关键角色,将交易打包成区块并为其生成零知识证明。该系统的一个特点是,验证者在物理上无法窃取资金。他们可能造成的最重大潜在损害是暂时停止网络的运行。

注意:在zkSync Era中,验证者的角色由运营者来执行。

zkSync的开发人员强调他们架构的以下保证:

  1. 资金安全:运营者永远不会损害网络状态或窃取资金,这与侧链相比是一个优势。
  2. 资金恢复的可能性:即使运营者停止运营,用户仍然可以提取他们的资金。这得益于数据的可用性,与Plasma系统不同。
  3. 独立于监控:由于ZKP的存在,用户或可信第三方不需要持续监控Rollup区块以防止欺诈行为,这与基于欺诈证明的系统(如支付通道或乐观Rollup)相比是一个优势。

在zkSync Era中,交易经历了几个关键状态,与L1中的常规Rollup确认不同:

  • 待处理:交易已被运营者接收,但尚未被处理。
  • 处理中:交易正在由运营者处理,并准备好包含在下一个区块中。
  • 已提交:交易数据已发布在以太坊上,确保数据可用性,但并未确认其正确执行。
  • 已执行:最终阶段,交易的有效性证明(SNARK)由以太坊智能合约进行验证,使交易最终确定。

除了区块编号外,zkSync中的交易还显示了包编号。最初,参数如block.number、block.timestamp和blockhash都是从L1获取的。然而,在更新后,这些值现在将从L2获取。尽管如此,开发人员计划提供访问来自L1的数据的方法。

zkEVM 和 EVM 之间的差异

基于ZKP的L2解决方案与以太坊的兼容性是一个复杂的任务。这是因为以太坊最初并不是为与ZKP的最佳交互而设计的。因此,在开发这样的系统时,必须在性能和可扩展性潜力之间找到一种折衷,同时与以太坊和EVM保持兼容性。Vitalik Buterin的文章“不同类型的ZK-EVMs”详细讨论了这些方面,并突出了不同级别的兼容性。

zkSync选择了其中一条最具挑战性的道路,旨在实现高性能,但与以太坊和EVM的兼容性有限。为了获得与zkEVM兼容的字节码,使用了LLVM项目以及一套专有的编译器和优化器。对于Solidity和Yul,经过标准的solc编译器之后,代码还必须经过几个更多的阶段,才能变成zkEVM字节码。下面的图示展示了这个过程的所有阶段(在这里描述得更详细):

重要提示!zksolc中支持优化。

专门为EVM编译的字节码与zkEVM不兼容。这意味着以太坊和zkSync中相同智能合约的地址将不同。然而,开发人员计划在未来解决这个问题。

这种方法的一个重要优势是不依赖于特定的编程语言。未来,zkSync的开发人员承诺添加对诸如Rust和C++之类的语言的支持。重要的是,高级编译器(例如solc)和平台编译器(例如zksolc)之间的更新和创新集成的延迟是最小的。最初,有一个想法是创建他们自己的编程语言Zinc,但目前团队的重点是支持更流行的编程语言。

zk-编译器与现有的Solidity和Vyper智能合约开发和调试工具的兼容性问题非常重要。目前的开发平台,如Remix、Hardhat和Foundry,在开箱即用时不支持zk-编译器,这给使用它们带来了困难。然而,正在开发的解决方案承诺简化项目迁移和适应新技术的过程。

Vitalik Buterin的文章提到,以太坊可能会努力随着时间的推移,在协议级别改善与ZKP的兼容性。同样,基于ZKP的L2解决方案将调整以更好地与以太坊兼容。因此,将来,这些系统之间的差异可能会变得几乎不可察觉,为开发人员提供更顺畅的集成和过渡。

zkEVM的特点

重要提示!该协议正在积极开发中;请始终参考最新版本的文档!

zkEVM与EVM不同,尽管开发人员努力在“底层”隐藏这些差异,但在编写智能合约时需要考虑一些重要特性:

  1. 与EVM的差异:为zkEVM编写的Solidity代码的行为可能会有所不同,特别是在诸如block.timestamp和block.number等方面。定期检查文档以了解更改是很重要的。
  2. 系统合约:在zkSync中,有用于各种功能的系统智能合约,比如ContractDeployer用于部署智能合约,MsgValueSimulator用于处理ETH。更多关于系统智能合约的信息可以在文档中找到。
  3. 部署时的代理模式:建议在部署后的前几个月使用代理模式,以防止潜在的编译器错误。
  4. Gas计算:zkEVM中的Gas计算模型与以太坊不同,包括一组不同的操作码和Gas价格依赖于L1。详情请参阅这里
  5. 本地测试:标准工具,如Hardhat Node或Anvil,并不适用于zkEVM的本地测试。而是使用特殊选项,包括fork模式测试。
  6. 签名验证:建议使用内置的帐户抽象支持,而不是ecrecover。
  7. 跟踪与Gas相关的错误:在zkSync中,由于在DefaultAccount系统智能合约内执行的特性,无法跟踪与Gas短缺相关的错误。

为了深入了解如何使用zkEVM,建议研究文档,包括“安全性和最佳实践”部分。

账户抽象

在zkSync中,账户抽象相对于ERC-4337具有几个关键优势:

  1. 实现层面:在zkSync中,账户抽象是内置在协议层面的,使得所有账户,包括外部拥有的账户(EOA),在功能上类似于智能合约。
  2. 交易处理:尽管ERC-4337为捆绑器使用单独的内存池,从而创建了两种不同的交易流,但zkSync Era只有一个内存池。这意味着来自EOA和智能合约的交易在一个流中处理,确保了更顺畅的集成和处理。
  3. 支持支付主体:zkSync支持所有类型的账户的支付主体,允许以ERC20代币配置gas费用。

zkSync 基础设施

zkSync Era的基础设施正在迅速发展,并已包括数十种协议:桥接协议、DeFi、基础设施协议等等。 (当前列表可以在此处查看)。

另一个优点是与以太坊钱包的兼容性,例如MetaMask或TrustWallet。

超级链

zkSync协议的发展始于zkSync Lite的推出,该版本仅针对以太币和ERC-20代币的转账,无法部署完整的协议。这一阶段是发展的重要步骤,但只是zkSync Era的到来之前的前奏——zkSync Era是以太坊的一个完整的L2解决方案,理论上也可以适应其他L1区块链。然而,zkSync的雄心并不止于此,因为开发计划还包括推出所谓的超级链。

超级链,或称“分形扩展”,由ZKP网络组成,每个网络形成自己的区块和证明。然后,这些证明被收集在一起并发布在主要的L1网络上。这些网络中的每一个都是整个系统的完整副本,可以被视为其“分形”。

超级链的独特之处在于它们可以独立创建和部署。为了保持一致性和兼容性,每个超级链必须使用一个共同的zkEVM引擎,作为ZK栈的一部分(其中zkSync Era充当第一个超级链)。这使得超级链能够从L1继承其安全性,确保其可靠性,并消除对额外信任和安全措施的需求。

超级链代表了扩展区块链网络的创新方法,减轻了主要网络的负载并提高了交易处理速度。该方法的关键方面包括:

  • 超级链之间的证明传输:超级链将相互传输区块证明,增加了交易到达主要L1网络前所需的距离。这有助于分散负载,避免瓶颈问题的发生。

  • 对用户的透明度:用户不会注意到任何差异——他们的交易在超级链中处理,并且在到达主网络之前可能会经过几个级别,从而在处理中创建了异步性。
  • 优于现有解决方案:与当前的L2解决方案不同,这些解决方案虽然速度更快,但在交易量上仍然存在限制,有时会在安全性上做出妥协,而超级链承诺具有显著更高的可扩展性。
  • 创建自定义区块链的灵活性:超级链允许创建具有不同安全性和隐私级别的自定义区块链和账户。即使安全级别较低,在最坏的情况下,也只会出现资金的临时冻结。

有关这一切的更多信息可以找到这里

zkSync 的优点和缺点

优点

  1. 安全性:接近L1级别的安全性,未来具备去中心化的潜力。
  2. EVM兼容性:支持与EVM兼容的智能合约。
  3. Web3 API和钱包:标准的Web3 API和对诸如MetaMask等以太坊钱包的支持。
  4. 账户抽象:原生支持账户抽象。
  5. 交易速度:在L2上进行快速交易处理,随后在L1上确认。
  6. 低费用:与L1相比,降低了Gas费用。
  7. ERC20 Gas支付:能够使用ERC20代币支付Gas费用。
  8. 不断发展的基础设施:非常活跃的基础设施发展。
  9. 可扩展性潜力:具有显著扩展性改进的机会。

缺点

  1. 有限的EVM兼容性:与竞争对手(如Polygon zkEVM、Scroll等)相比,其EVM兼容性较低。
  2. 智能合约中的错误风险:错误风险增加,需要进行彻底的测试和审计。
  3. 特定的开发栈需求:需要将开发栈适应协议的具体要求。
  4. 落后于核心技术:在编译器和库更新方面采用创新的速度有所延迟。
  5. 网络集中化:目前,网络由有限数量的运营商管理。
  6. 需要可升级的智能合约:由于以上原因,有必要在项目开始时始终制定可升级的合约,以便及时纠正缺陷和漏洞。

结论

zkSync协议看起来非常有前景,具有巨大的潜力,尽管目前,在这个区块链上启动仍然涉及一些需要考虑的风险。目前,为zkSync开发相对于与EVM和EVM开发栈更兼容的区块链来说可能更具挑战性。然而,也许在未来,这种差异将变得微不足道,甚至完全消失。

声明:

  1. 本文转载自[MetaLamp],原文标题《How ZKP and ZK-Rollups help solve the scalability problem: a review of the zkSync blockchain》,著作权归属原作者[ MetaLamp ],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!