零知识证明 (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的情况下不得复制、传播或抄袭经翻译文章。
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.