Layer3会是以太坊的新方向吗?
Vitalik在最近的一篇文章中讨论了Layer 3的概念。那么,什么是Layer 3?
我们先简单回顾一下Layer 1和Layer 2。
早期的公链,尤其是以太坊,其生态发展受制于网络性能,每秒可处理的交易笔数(TPS)比较小,网络时常发生拥堵,且交易GAS费比较昂贵,无法支撑高性能的应用在其上发展。为了提升网络的可扩展性,各种扩容方案相继被提出。
扩容的路线主要有两种:
一种是在原有的区块链本身,也就是Layer 1上进行扩容,让区块链自身拥有更高的交易容量和处理速度。
这种方案的主要问题是:如果通过更大的区块来进行扩容,那区块会变得更难验证,同时网络也会变得更加中心化。
第二种是在区块链上附加一层,即常说的Layer 2扩容。这种方式不是将所有的活动(比如计算、存储、共识)直接放进原链中(单片式的layer 1区块链),而是通过模块化的执行层,也就是一些链下的Layer 2协议来处理一系列的交易。链上的智能合约只进行两项工作:处理存款和取款,以及验证所有链下发生的行为是符合规则的。
在讨论Layer 2扩容的过程中,逐渐出现了一个新的概念--Layer 3。
Layer 3基于这样一种理念:
如果可以在Layer 1之上添加Layer 2协议来帮助处理交易从而提升安全性和可扩展性,那么是不是也可以在Layer 2上面增加额外的Layer 3协议来继续增加安全性和可扩展性?
这个想法听上去不错,但是在实际执行上面临着诸多问题,使得这种扩容方案无法直接简单地进行堆迭。
Rollup是一种扩容技术,主要是为了解决区块链运行时的扩展的两大瓶颈:计算和数据。
其中计算瓶颈可以由欺诈证明或者SNARK来解决,这依赖于一小部分人来处理区块,其他人只需要进行很小的计算量,来验证这些处理结果的正确性。
这些方案,尤其是SNARK,几乎可以无限制扩容,可以通过在SNARK上再进行SNARK来把很多计算量缩小到一个证明里。
但是数据则不同。Rollup使用一系列的技巧来缩小一个交易需要上链的数据量,一个简单的货币转账的大小被从100字节压缩到16字节,一个保护隐私的ZK-SNARK交易可以从600字节被压缩到80字节。
但是Rollup仍然需要维持链上数据的可用性。也就是说链上数据对用户来说需要可获得并且可验证,这样用户就可以独立地计算和验证Rollup的状态,并且在现有验证者离线的时候可以作为验证者加入。
数据只能做一次压缩,不能用同样的压缩逻辑把压缩过的数据再压缩一次。
所以,Rollup上的Rollup(多层堆迭)这种方案实际上并不能在可扩展性方面带来更多的收益。
但是,Layer 3模型可以用作其他用途。
优化了零虚拟机开销的应用程序 无MEV,或MEV有限,即可以通过简单的解决方案来减轻有害的MEV 为特定目的选择微调硬件(通用链总会有一些不适合某个应用程序的瓶颈)。 解决交易质量不可能三角--可以支付少量的交易费用,但仍然可以通过有针对性的防DDoS方案来规避垃圾邮件。
它的layer 3包括了:
拥有Validium的数据可用性的StarkNet,主要给一些对价格特别敏感的应用来使用。
专门针对APP的拥有更好的应用处理性能的StarkNet系统,例如应用了特殊设计的存储结构。
服务于类似 dYdX、Sorare、Immutable 和 DeversiFi 的StarkEx 系统,这些系统具有 Validium 或 Rollup 数据可用性,可以为 StarkNet 带来可扩展性优势。
隐私 StarkNet 实例(在此示例中也作为 L4)可以实现隐私保护交易而不会将它们包含在公共 StarkNet 中。
Layer 3的成本
Rollup和validium需要在确认时间和固定成本之间做权衡。但Layer 3可以解决这些。
Rollup中的每笔交易的费用都很低:根据应用的不同,大概是16-60字节的数据。
但是Rollup也有一笔很高的固定成本,来源于每次需要将一批交易提交到layer 1链上时:如果是optimistic rollup需要21000 layer 1 gas每批次,如果是ZK rollup则会超过400,000 gas,如果是量子安全的STARK则需要百万以上的gas。
当然,rollup也可以简单地选择等到有 1000 万 gas 价值的交易时再来提交整批交易,但这会造成非常长的批次间隔,迫使用户等待更长的时间以获得高安全性的确认。
因此,它们需要在不同方案中权衡:较长的批次间隔和最佳成本,或者较短的批次间隔和增长的成本。
Vitalik在文章中展示了一个批次成本为 600000 gas 的ZK rollup、每笔交易成本为 368 gas的完全优化的 ERC20 转账(23 字节)的情况。假设此rollup处于早期采用阶段,TPS为5。计算得出每笔交易与批次间隔的gas:
如果在拥有大量定制化Validium和针对APP的定制环境的情形下,它们可能不需要用到5tps。事实上,layer 3确实能解决这个问题。ZK rollup 中的 ZK rollup只有大约 8,000 gas 的layer 1 成本(500 字节用于证明)。这将上表更改为:
Layer 3有什么优势?
更好的可扩展性:来源于利用递归证明的倍数效应。 构建layer3的应用程序设计人员获得了更好的控制性。 隐私:例如,零知识证明应用于开放Layer 2 上的隐私保护交易。 更便宜/更简单的 layer 2-layer 3 互操作性:
目前在 layer 1 和 layer 2 之间的出入金流程非常昂贵。相比之下,由于 layer 2 的成本效益,这些流程在应用于 layer 3 时不仅极具吸引力,而且易于实施。虽然在 layer 2 和 layer 3 之间移动资产的延迟可能比部署在同一 layer 2 上的应用程序之间的延迟要长,但成本和吞吐量是成正比的。
更便宜/更简单的 layer 3-layer 3 互操作性: 独立的 layer 3 将通过 layer 2 而不是 layer 1 进行互操作。layer 2 显然比它的 layer 1 便宜。在没有 layer 3 的情况下,这些都将在 layer 2 上运行,也就必须通过相当昂贵的 layer 1 进行互操作。 layer 3 作为 layer 2 的“金丝雀”网络: 新的创新可以在 layer 3 上进行测试,然后在 layer 2 或 layer 3 上向公众提供(很像 Kusama 在 Polkadot 中扮演的角色)。
Starkware在他们的方案中介绍了layer 3的具体实现方式。
一个经典的layer 2结构包括了以下几个组成部分:
跟踪layer 1上的layer 2状态根的智能合约(例如以太坊上的StarkNet智能合约)
一个Verifier智能合约来证明状态转换证明的有效性
layer 1上的用来管理layer 2上进出的代币的存取款的桥合约
layer 2上用来作为layer 1上代币交易对手方的代币合约,如ERC20, ERC721
Layer3--Dapp开发者的选择
对于 dApp 的开发者来说,在基础设施上可以有以下几种选择:
1、自己开发一个 Rollup(ZK Rollups 或者Optimistic Rollups)
结语
Layer 2可以降低每笔交易的 gas 成本、提高链上的可扩展性。同时,Layer 2保留了去中心化、通用逻辑和可组合性的好处。通过递归结构的设计,Layer 3也可能继承Layer 2的这些优点。
目前一个比较普遍的观点是:一些应用需要特定的定制化服务,而这些服务,将由Layer 3来提供。
Layer 3 可能会为以太坊或者说是区块链,开辟一个新的空间,就像 Rollup那样。但是目前还有很多的技术细节需要去解决,这还需要时间。
自2020年以来,应用层的创新几乎没有出现。过去关于区块链应用未爆发的原因,多数说法是现有的公链的性能不足以支撑高计算量高并发的应用,这种思路还停留在单片区块链的时代。但是随着layer 3方案的成熟,预计将会出现一批新的应用,这些应用只有在分形扩容的情况下才真正有可能实现。链上游戏或类似依赖大量计算的项目,可能会成为第一批部署自己的layer 3的项目。