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