跳至内容
0%

什么是 ZKsync Era?面向 Ethereum 开发者的概述

Sankrit K headshot

作者 Sankrit K

发布于 2024年5月9日4 分钟阅读

ZK rollup作为区块链可扩展性的一种有前景的解决方案出现——它们通过零知识证明(ZKP)改善了隐私性,提高了交易速度,并大幅降低了费用。然而,它们缺乏采用度,因为ZK rollup与以太坊虚拟机(EVM)不兼容。

EVM是Ethereum的核心,它让开发者能够使用Solidity构建和部署应用。由于传统的ZK rollup不兼容EVM,开发者必须为ZK rollup环境完全重写智能合约。因此,尽管这项技术潜力巨大,但它却成了该技术被采用的一大障碍。ZKsync旨在改变这一现状。

由Matter Labs开发的ZKsync是Ethereum首创的layer 2扩容解决方案。在公布其愿景——即为Ethereum打造一个无需信任且注重隐私的扩容方案——仅六个月后,ZKsync便以实现了看似不可能的目标震惊了区块链领域:EVM兼容性。

ZKsync后来发展为两个版本:ZKsync Lite和ZKsync Era。

本文将深入探讨ZKsync Era,它与ZKsync Lite的区别,以及它相较于其他ZK区块链的独特之处。

什么是zkSync era?

ZKsync是一个通用的layer 2 Ethereum解决方案,也是全球首个EVM兼容的ZK rollup。

它解决了以太坊主网长期存在的两个问题:可扩展性和高额交易费用。

zkSync Era TVL 图表
zkSync Era TVL

借助基于LLVM的编译器,通过ZKsync为Ethereum构建应用的开发者可以使用Solidity和Vyper等语言编写智能合约。大多数基于EVM的智能合约无需修改一行代码即可迁移,从而充分利用ZK rollup的全部潜力。

zkEVM入门

EVM是完全透明的——这是有原因的,即可验证性。只有通过透明性,基于EVM的区块链才能确保所有交易不仅可见,而且可被任何参与者验证。

这种开放程度保证了所有操作都遵循网络设定的共识规则,从而防止欺诈,并确保网络保持安全和去中心化。

但目标从来都不是透明性,而是无需信任。在ZK rollup出现之前,透明性只是通往无需信任的路径。

例如,一个诚实的行为者(比如普通用户)可能出于个人偏好,希望自己的交易和其他信息保持私密。传统上,区块链并不允许这样做。

但有了zkEVM,区块链上的任何交易都可以通过概率方式证明,而无需披露交易中的每一条信息。

zkEVM 交易示意图
zkEVM 交易示意图

什么是zkSync lite?

Matter Labs推出的第一代ZKsync是ZKsync 1.0——一个主要专注于在Ethereum上实现安全、低成本代币转账的layer 2解决方案。它后来更名为"ZKsync Lite"。

ZKsync Lite在链下打包交易以生成有效性证明,然后将其提交到以太坊主网进行验证。然而,它并不具备完整的EVM兼容性,因此支持的应用范围有限。

ZKsync Lite的局限性促成了第二代产品的诞生,即ZKsync 2.0,也就是我们现在所知的"ZKsync Era"。

zkSync lite与zkSync era对比

链

ZKsync Lite

ZKsync Era

侧重点

可扩展支付和代币转账

完全可编程的扩容解决方案

EVM兼容性

有限

完全

智能合约支持

基础功能(兑换、转账)

广泛支持(DeFi、NFT、DAO等)

架构

纯ZK rollup

混合架构(ZK rollup和zkPorter,提供更强的可扩展性)

集成速度

快

比ZKsync Lite慢

使用场景

支付、简单交易

支付、复杂应用、DeFi协议、NFT市场、游戏等

在文档中了解更多。

zkSync原生账户抽象概述

较早或传统的区块链难以在协议层原生实现账户抽象方面的创新。由于这些区块链更加成熟,在协议层集成AA技术栈会引发向后兼容性问题。

而ZKsync是一个相对较新的解决方案,它通过类似于ERC-4337的集成方式原生固化了AA功能。

以下是该协议原生实现AA的方式:

zkSync 账户抽象示意图。来源:Clave
zkSync 账户抽象示意图

交易发起

交易从EOA和合约发送到内存池。这包括常规转账、合约交互以及其他类型的交易。

交易聚合

Bundler(操作员排序器)从内存池中获取交易,并将它们打包成一个批次。

这一过程包括由**入口点(BootLoader)**生成加密证明(很可能是零知识证明),用以证明批次中所有交易的有效性,而不披露底层交易数据。

证明提交与交易最终确认

打包后的交易及其证明会被提交到以太坊L1上的Rollup合约。

Rollup合约验证这些证明,验证成功后,最终确认这些交易。

这一步骤实际上是将Layer 2计算的结果写回以太坊主链。

最终确认

一旦交易被Rollup合约确认,它们就被视为已最终确定。

以太坊上区块的最终性确保了所有已包含的交易是不可篡改的,并正式成为以太坊账本的一部分。

ZKsync使用了哪种类型的ZK技术?

"ZK技术是扩容的圣杯。而这也正是Ethereum及所有区块链最终实现扩容的方式。"

——Alex Gluchowski_ | Matter Labs联合创始人兼CEO_

零知识证明,特别是递归ZK-SNARK,是ZKsync所用技术的核心。

SNARK是一种特定类型的零知识证明,具有简洁性(即体积小、验证速度快)和非交互性(证明者与验证者之间无需来回通信)的特点。

递归SNARK在此基础上进行了扩展,允许一个SNARK证明验证另一个SNARK。这使得构建"证明金字塔"成为可能,其中每一层都依赖于前一层的有效性,从而能够对数量庞大的计算或交易进行可扩展且高效的验证。

因此,即使是计算能力相对较低的设备,比如智能手机,也能够以极少的资源验证大量交易。

由 Matter Labs 制作的 zkSync 区块验证示意图
zkSync 区块验证示意图。来源:Matter Labs

支撑ZKsync技术的是其框架ZK Stack。

用ZK stack构建:驱动zkSync的框架

ZK Stack是一个基于ZK Credo原则构建的模块化开源框架,用于构建由ZK技术驱动的Hyperchain。

这些Hyperchain类似于独立的区块链,能够在ZK Sync生态系统内实现无缝互操作性。

ZK 驱动的 hyperchain 结构示意图
ZK hyperchain 示意图。来源:Matter Labs

ZK Stack的模块化特性为开发者提供了对以下方面的精细控制:

  • **数据可用性:**在rollup、validium或volition配置之间进行选择,以在隐私性和可扩展性之间取得最佳平衡。
  • **代币经济学:**设计Hyperchain时可以选择以Ether作为基础代币、使用自定义代币,甚至支持多种代币。
  • **排序:**实施不同的排序器配置,以满足中心化效率(高频交易)或去中心化无需许可安全性的需求。

zkSync与其他ZK区块链的对比

几年前,社区还在为Ethereum的可扩展性寻求侧链和plasma方案。而如今,rollup已成为有效扩容Ethereum的核心技术。

自2018年推出以来,ZK rollup尤其获得了广泛的关注和采用,Polygon等大型项目已采用该技术,Vitalik Buterin等思想领袖也在为其倡导。

ZK 证明与扩容示意图
ZK 证明与扩容示意图。来源:Linea

根据L2 beat的数据,截至本文撰写时,已有11个基于ZK rollup的layer 2扩容解决方案处于活跃状态,另有14个即将上线。面对如此众多的选择,开发团队该如何做出选择合适rollup进行构建的合理决策?

基于 ZK rollup 的二层扩容方案列表
基于 ZK rollup 的二层扩容方案。来源:L2Beat

构建应用时需要考虑以下三个因素:

  1. **选择合适的链:**评估可扩展性、安全性和开发者支持情况。选择在这些方面与项目需求相匹配的区块链。
  2. **考虑多链策略:**权衡多链方案带来的更广泛市场覆盖和风险分散,与随之增加的复杂性和成本之间的关系。
  3. **评估工程开销:**考虑集成难易程度、运维成本以及所需的开发者技能。估算所涉及的总成本和时间投入。

接下来我们看看ZKsync Era与Starknet和Polygon zkEVM有何不同。

zkSync era与StarkNet对比

Starknet是(按TVL衡量)领先的ZK rollup扩容解决方案,与ZKsync Era有着相似的目标——扩容Ethereum并推动大规模采用。

ZKsync Era专注于向后兼容性,让开发者能够轻松迁移项目,或凭借已有的Solidity和Vyper知识进行开发。

而Starknet则采取了另一种策略,力图吸引那些不熟悉任何主流区块链开发语言的新人,让他们可以使用被认为更简单的Cairo语言继续开发。

下表阐明了ZKsync Era与Starknet之间的区别。

链

ZKsync Era

Starknet

证明生成

ZK-SNARK

ZK-STARK

证明大小

小

大

无需信任程度

较低

较高

验证成本

每批约460,000 gas

多对数级(EIP-4844后更低)

EVM兼容性

是

否

开发者体验

对Ethereum开发者更简单

对Ethereum开发者存在学习曲线

编程语言

Solidity、Vyper

Cairo

编译器

LLVM

Warp

zkSync era与Polygon zkEVM对比

ZKsync Era和Polygon zkEVM发布时间相差不到一周,两者基于相似的技术,但存在一些细微差别。具体来说,Polygon zkEVM是一个EVM等效的rollup,而ZKsync Era是一个EVM兼容的rollup。

"EVM兼容"意味着其底层虚拟机能够理解并执行为以太坊虚拟机(EVM)编写的代码。开发者可以轻松地将现有的Ethereum智能合约移植到ZKsync Era,只需极少的修改。

"EVM等效"意味着它在功能上与EVM相似,但底层使用了不同的虚拟机。开发者可能需要调整现有的Ethereum智能合约,才能使其在Polygon zkEVM上正常运行。

下方的对比表格突出展示了ZKsync Era与Polygon zkEVM之间的关键差异。

链

ZKsync Era

Polygon zkEVM

证明生成

ZK-SNARK

ZK-SNARK和zk-STARK

证明大小

小

大

无需信任程度

较低

较高

EVM兼容性

兼容

等效

开发者体验


Ethereum智能合约易于迁移

可能需要一定的代码调整

编程语言

Solidity、Vyper

Solidity

编译器

LLVM

未使用编译器

使用Alchemy进行构建

ZKsync现已在Alchemy上线。

这一集成免去了运行和维护ZKsync节点的负担,让你可以专注于打造应用独有的价值主张。

通过 Alchemy Node API 访问ZKsync Era的主网和测试网RPC端点。借助Alchemy的API,开发者可以获得高可靠性和简化的开发体验。

三步开始使用

  1. **注册免费账户:**访问Alchemy并创建你的账户。
  2. **获取ZKsync Era RPC端点:**在你的Alchemy仪表盘中查找ZKsync Era(主网和测试网)端点。
  3. **开始构建:**将这些端点集成到你的dApp中。

更多信息请查看ZKsync Era API快速入门文档。

常见问题

什么是zkSync era?

zkSync Era是一个layer 2 Ethereum扩容解决方案,也是全球首个EVM兼容的ZK rollup,它解决了Ethereum的可扩展性问题和高额交易费用问题,同时与现有的Ethereum智能合约保持完全兼容。

zkSync era与zkSync lite有何不同?

zkSync Lite专注于可扩展支付和代币转账,EVM兼容性有限,而zkSync Era是一个完全可编程的扩容解决方案,具备完整的EVM兼容性,支持DeFi协议、NFT市场和游戏等广泛的应用。

在zkSync era上构建应用,开发者需要学习新的编程语言吗?

不需要,开发者可以使用熟悉的Ethereum编程语言,如Solidity和Vyper,大多数基于EVM的智能合约无需重写一行代码即可迁移。

zkSync era使用了哪种类型的零知识技术?

zkSync Era使用递归ZK-SNARK,这是一种简洁且非交互式的零知识证明,能够以极少的计算资源高效验证大量交易。

zkSync era上的原生账户抽象是什么?

zkSync Era在协议层原生固化了账户抽象功能,从而实现高级钱包功能和用户体验的提升,而不会遇到老旧区块链所面临的向后兼容性问题。

zkSync era与Starknet等其他ZK rollup相比如何?

zkSync Era优先考虑使用Solidity和Vyper实现EVM兼容性,以便于迁移,而Starknet使用自有的Cairo编程语言,虽然要求开发者学习新工具,但对新人而言可能提供了更简单的开发体验。

什么是ZK stack,它与zkSync era有何关系?

ZK Stack是驱动zkSync Era的模块化开源框架,它支持构建由ZK技术驱动的Hyperchain,并对数据可用性、代币经济学和排序配置提供精细控制。

Background gradient

构建区块链应用

Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。