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