title: 1. Layer 2 基础 tags: ethereum layer 2 rollup zk zksync WTF zkSync 极简入门: 1. Layer 2 基础 这个系列教程帮助开发者入门 zkSync 开发。 推特:@0xAAScience|@WTFAcademy 社区:Discord|微信群|官网 wtf.academy 所有代码和教程开源在 github: github.com/WTFAcademy/WTF-zkSync 这一讲,我们将介绍什么是 L2,以及它的种类。 什么是 L2? L2(Layer2,二层网络)是一种以太坊的扩容方案,它是一条独立的区块链,扩展了以太坊并继承了以太坊的安全保证。 1.1 什么是 L1?
title: 1. Layer 2 基础 tags: - ethereum - layer 2 - rollup - zk - zksync
这个系列教程帮助开发者入门 zkSync 开发。
推特:@0xAA_Science|@WTFAcademy_
所有代码和教程开源在 github: github.com/WTFAcademy/WTF-zkSync
这一讲,我们将介绍什么是 L2,以及它的种类。
L2(Layer2,二层网络)是一种以太坊的扩容方案,它是一条独立的区块链,扩展了以太坊并继承了以太坊的安全保证。
L1,也就是第一层网络,指的是底层区块链基础设施。它们是整个区块链生态系统的基石,为上层应用和扩展方案提供了必要的基础架构和安全保障。以太坊和比特币都是典型的第一层网络区块链,因为它们各自提供了一个独立运行的、具备完整功能的区块链系统,包括交易处理、数据存储、以及网络共识机制等。
L1 网络的主要特点和功能包括:

在传统货币理论中存在“不可能三角”,即一国无法同时实现货币政策的独立性、汇率稳定与资本自由流动,最多只能同时满足两个目标,而放弃另外一个目标。
相类似,当前的区块链技术也存在“不可能三角”,即无法同时达到 可扩展(Scalability)、去中心化(Decentralization)、安全(Security),三者只能得其二。
目前很多区块链会在三者中有所权衡,比如以太坊和比特币比较关心的就是去中心化和安全性。而有一些新公链更注重的是可扩展性和安全性。
从比特币创世开始到以太坊网络中 Crypto Kitties 游戏的出现,主流公链项目最被人诟病的地方就是低下的 TPS。以太坊当下的 TPS 完全无法给大多数应用提供实时稳定的支持,这与当前互联网行业动辄上万 TPS 的业务形成了鲜明的对比。
对于以太坊而言,过去几年内关于以太坊扩容的方案不断出现。除了我们在第二部分讲的 Rollup 技术之外,其他主流的方案如下所示:

L1 网络之上的 L2(第二层)解决方案,如卷叠(Rollups)和闪电网络(Lightning Network),通过在 L1 基础设施之上创建额外的协议或网络层,旨在提高交易处理速度、降低交易成本,并提升整个网络的可扩展性。
这些 L2 项目通过将交易数据发布到底层 L1 网络(如以太坊),利用 L1 网络的安全性和数据不变性,实现在 L2 层上的高效交易处理。此外,L1 网络也为 L2 方案提供了数据可用性和最终的安全保障,使得在 L2 网络上进行的交易能够得到确认并在需要时回溯至 L1 网络验证。
Rollup(卷叠)技术是目前最主流的 L2 扩容方案。顾名思义,Rollup 就是把一堆交易卷起来(Rollup)汇总成一个交易,所有接收到这个交易的节点只去验证执行结果,而不会验证逻辑。因此 Rollup 交易所需 Gas 费会远小于交易 Gas 费总和,TPS(每秒钟交易次数)也增加了。
Rollup 技术主要分为两类:
Optimistic Rollup(乐观的 Rollup 协议)采用欺诈证明方法,即对链上发布的所有 Rollup 区块都保持乐观态度并假设其有效,它仅在欺诈发生的情况下提供证据。乐观 Rollup 的优势在于能使得原生 Layer1 上的 solidity 合约可以无缝移植到 Layer2,从而最大程度提升了技术人员的研发体验,目前主流方案包括 Optimism 和 Arbitrum。
ZK-Rollup 是基于零知识证明的 Layer2 扩容方案,采用有效性验证方法(VP),默认所有交易都是不诚实的,只有通过有效性验证才会被接受。ZK-Rollup 在链下进行复杂的计算和证明的生成,链上进行证明的校验并存储部分数据保证数据可用性。目前主流的方案包括 zkSync、StarkNet、Scroll、Polygon Hermez 等。
从中长期来看,随着 ZK-SNARK 技术的改进,ZK rollups 将在所有用例中胜出。— Vitalik Buterin
零知识证明(zero-knowledge proof),简写为 ZKP,最初由 S.Goldwasser、S.Micali 及 C.Rackoff 在 1985 年的论文 《交互证明系统的知识复杂性》 提出,指的是证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。
性质
零知识证明有何应用?
ZK-Rollup 早期为人诟病的地方是不能兼容 EVM,不能支持智能合约功能,例如早期 Gitcoin 捐赠主要支付途径的 zkSync 1.0 (Lite)仅能支持转账等基本功能。同时,由于不同 ZK 应用有各种专用电路,无法相互调用,可组合性差。因此市场急需能够支持以太坊智能合约的 ZK-Rollup,而其中关键门槛就是能够支持零知识证明的虚拟机。随着引入 EVM 兼容的 zkEVM,zk-rollups 才开始支持以太坊 dApps。

Credit: Zhangye@scroll
由于 zkEVM 并没有统一的设计标准,所以每个项目方基于不同角度在兼容 EVM 和支持 ZK 之间权衡设计出各自方案,目前基本分为两种思路:
对于第一种策略,由于不受原有 EVM 指令集的约束,可以更灵活的将代码编译成对零知识证明更友好的指令集,同时也摆脱了兼容所有 EVM 原有指令集所需要的艰巨而繁重的工作。
对于第二种策略,由于完全支持了 EVM 现有的指令集,其使用的是和 EVM 一样的编译器,因此天然就对现有的生态系统和开发工具完全兼容,同时还更好的继承了以太坊的安全模型。
第一种思路更灵活,工作量更小,但需要花费额外精力在适配上;第二种思路工作量相对来说会大一些,但是兼容性更好,安全性更高。
在 Vitalik 的博文 中,他将 zkEVM 分为几种类型。其中,类型 1 是直接在以太坊上面直接开发 zkEVM,这个开发过于复杂而且目前效率太低,以太坊基金正在研究中。类型 2、类型 2.5 和类型 3 是 EVM 等效的 zkEVM,Scroll 和 Polygon Hermez 目前处于类型 3 这个阶段,朝着类型 2.5 乃至类型 2 努力。类型 4 是高级语言兼容的 zkEVM,包括 zkSync 和 Starknet。这些类型并无好坏之分,而且 zkEVM 也没有统一的标准。

从理论上讲,以太坊不需要为 L1 使用单一的 zkEVM 实现进行标准化;不同的客户可以使用不同的证明,因此我们继续从代码冗余中受益。— Vitalik Buterin

这一讲,我们介绍了 Layer 2 (L2) 基础知识及其在以太坊扩容中的作用,深入讨论了主流的 rollup 技术和 zkEVM。下一讲,我们将详细介绍 zkSync Era 二层网络。