什么是区块链中的Layer3?

 2023-09-03 09:41:35发布 2023-09-03 11:29:49更新

Layer3是指在Layer2之上的更高级别的协议和应用层。它建立在Layer1和Layer2的基础上,为用户提供更丰富、多样化的功能和服务。Layer3可以包括去中心化应用(DApps)、智能合约、身份验证系统、资产管理工具等。以太坊上的大部分应用和协议都属于Layer3。

不过Layer3的想法还在非常早期阶段,现在下定论显然有失偏颇。Layer3的最终形态需要基于开发者探索、实战检验和实际需求。

以下将通过Layer3的一种构建思路——StarkWare提出的多层网络结构图,进一步分析。

StarkWare的多层网络

以太坊多层网络的实践设想最早由StarkWare团队在文章”FractalScaling:FromL2toL3″中提出。在这种设计中,现在的Layer2是一种generalpurpose的扩容,在此之上,Layer3做定制化的扩容。

StarkWare

StarkWare提出的多层网络结构图

StarkExVolition(rollup+validium)→低成本扩容

在Layer2的方案中我们已经熟悉了Validiums,一种通过SNARK算法对计算结果进行验证,数据不上传Layer1而是依赖于validator托管的扩容方案。

由于数据存在链下而非直接发布到Layer1,Validium降低了gas成本并提供了更好的privacy(数据并不向public公开)。但是从去中心化和安全性的角度看,DataAvailability依赖于第三方委员会,因此Validiums使用并不广泛。

StarkExVolition为Dapp提供了一种混合模式,可以选择将数据放到链上以保证安全性(StarkExRollup)或者放到链下以获取更低的成本(StarkExValidium)。目前StarkEx仍然是Layer2的扩容方案,但是在StarkWare后续的架构设计中,StarkEx完全可以作为一种打开Layer3大门的通道,在StarkNet通用扩容的基础上进一步为特定的dapp降低成本。

App-specificStarkNet→定制化扩容

我们知道Layer2的电路设计是为了服务所有Dapp,这意味着工程师设计电路的首要考虑是兼容性。因此现在的电路设计一定程度上牺牲了效率,并没有针对特定的Dapps进行优化。

这对于强交互性的Dapp来说是一种的瓶颈,比如注重游戏体验和实时玩家交互的web3游戏。App-specificStarkNet可以为帮助对性能要求较高的Dapp定制化地进行设计以达到更高的performance。

这个场景下Layer2解决用户编程和可组合性的问题,而Layer3定制化地针对项目方提供更高的性能。比如一个Dapp不需要和其他Dapp共享电路资源,并获得定制化的电路设计,或是由Layer3提供更高效的存储结构会数据压缩服务。

StarkNet(Validiums)→低成本扩容

类似于StarkExVolition,在Layer3中将Validiums作为一种低成本的扩容方案,让一些对价格敏感的Dapp获得更低的成本。

PrivacyStarkNet→定制化功能

对隐私功能的实现,某种程度上也可以看作app-specificdesign。虽然ZK-rollup对privacy友好,但出于去中心化和安全性的考虑,用户的交易数据仍需要在压缩后通过calldata发布到Layer1作为historylog,让所有用户都可以成为prover进行验证。

因此以扩容为目的的rollup并不能实现privacy。Layer3的能很方便的解决了这一痛点,对于一些强隐私需求的用户,定制化地在rollup甚至rollupofrollup的基础上实现隐私功能。

Layer3的价值

4个字概括的话,就是“降本提效”。

1、深入分析成本

StarkWare这种Layer3的架构带来最大的想象力在于对成本的优化,或许随着技术飞速迭代,之后会有更多Layer3杀手级的设计,但成本永远是我们需要直视的话题,同样也是当初设计Layer2的原因。

从降低gasfee的角度出发,现在Layer2的rollup不可能以理论速度在极短的时间(比如赶在以太坊出块时间12-14s内)将rollup链上的交易打包成batch并(生成proof)提交到Layer1验证。原因有以下两点组成:

  1. 原提交batch到Layer1会产生不低的成本,根据Vitalik的说法每个batch的成本>400,000gas;
  2. Rollup链上单位时间内每个batch能打包的transaction数量有限。

也就是提交batch存在基础成本,因此每个batch打包的交易越多,每笔交易分摊的gasfee越低。

因此rollup的设计需要权衡打包交易的时间间隔(用户体验)和每笔交易分摊的费用(用户成本)。如果过快地打包交易并提交Layer1,会增加分摊到每笔交易上的gasfee;过慢则会增加confirmationtime,影响用户体验。

Layer3带来的优化

如果考虑加入Layer3,比如在ZK-rollup的基础上再加一层ZK-rollup会极大地降低这提交batch到Layer1的基础成本(一个ZKP证明一堆ZKP,减少数据size)。根据Vitalik的估算,提交一个batchproof到Layer1的成本约为8000gas。

接下来用简单的数学计算帮助大家更加直观的理解成本问题;

已知:

  • 分摊到每笔交易的gas=transaction cost+batch cost/transaction amount
  • 以上等式中,transaction amount=TPS*confirmation time

假设在理想情况下:

  • batch cost=400,000gas(实际情况会更高)
  • transaction cost=368gas(Fully optimized ERC20 transfers)
  • TPS=5(Layer2均值)

当前Layer2的gas情况

  • confirmation time=12s(以太坊出块时间),分摊到每笔交易的gas=368+400000/(5*12)=~7035
  • confirmation time=1h,分摊到每笔交易的gas=368+400000/(5*3600)=~390

在当前二层网络的设计中,分摊到每笔交易的gas对打包batch的间隔时间,即用户感知到的confirmationtime非常敏感,且将confirmationtime控制在一个较短的时间窗内带来的成本非常高。

加入Layer3的gas情况

  • confirmation time=12s(以太坊出块时间),分摊到每笔交易的gas=368+8000/(5*12)=~501
  • confirmationtime=1h,分摊到每笔交易的gas=368+8000/(5*3600)=~368

2、关于成本的思考

在Layer2的基础上Layer3有明显提升,将confirmation time从12s延长到1h(每个batch打包更多交易)并没有带来显著的gas收益。

同时Layer3的设计几乎可以在一个较短的confirmation time内(12s)达到当前Layer2花费一小时confirmation的gas成本。在保证用户体验的前提下极大降低了成本。

另外,容易被忽视的一点是,由于batch cost的降低导致transactiona mount的增加同样不会为每笔交易带来太多gas成本的收益。因此,Layer3从这个角度看也更适合去做app-specific、定制化的设计。

3、效率

和成本一样,做多层网络结构的原因一定躲不开提升效率,wrappedtoken的实现降低了Layer2之间的互操作成本,但是效率上仍然有待提升:

-Optimistic-rollup→14天

由于fraud proof time,一个rollup链存(~7天)➕另一个rollup链取(~7天),~14天的验证期仍然无法避免;

Layer3

Optimistic rollup

ZK-rollup→~12小时

避免了fraudprooftime的漫长等待,相比Optimistic-rollup更快,但是有以下两个问题:

目前Layer2的ZK(E)VM需要做到oneVirtualMachinefitsallDapps,因此设计上妥协了一些ZK-unfriendly的设计,导致proof在生成时候需要额外的时间处理无法并行计算的指令;

在分析成本时提到过,出于对打包交易的时间间隔和每笔交易分摊的费用的权衡,当前的ZK-rollup无法在短时间打包交易到Layer1(否则gas太贵用户不干)。

加入Layer3后

Layer3的思路就是定制化扩容、app-specificscaling,因此,ZK-rollup生成proof这部分额外花费的时间会得到最大程度的优化;

Layer3的设计可以将跨链的交易成本降低基础上保证效率。相比于二层网络结构,无需经过Layer1,which is expensive and congested。

4、重新审视Layer3

综上,这种Layer3的设计就好像是在Layer1安全性的基础上,以Layer2为核心搭建出了无数子生态。

在一定程度上,多层网络架构进一步将Layer1的功能隔离,让Layer1专注于保障交易安全性,将计算等功能转移到每个子生态系统中。

另一种Layer3思路

Vitalik提出了一种新的架构设计思路,在我看来也可以算作一种多层网络架构的设计(你也可以把它看成一种二层网络结构),非常值得分析和思考:

  • Layer1:base layer
  • Layer2:batch mechanism
  • Layer3:rollup、validium
layer3

Vitalik 提出的一种新的架构设计思路

在现在的Layer1和Layer2之间插了一个(聚合+验证+分发)层。

在这种设计中,一种batch mechanism的结构以开放式协议的形态成为架构中的Layer2;现在我们熟知的Layer2(ZK-rollup)可以接入这种协议并成为一种Layer3。

整套batchmechanism的核心是以下2点:

  1. Batch prover将加入batch mechanism的各个ZK-rollup发送的多个proof聚合,并记录所有的newstate、oldstate、statedelta;
  2. Batch handler只需要验证一次聚合后的proof,验证成功后以(Newstate,Oldstate,Statedelta)作为验证成功的证明分发给相应的rollup链(Layer3)用于更新state。

Layer3的价值

-成本

相比现在Layer1的verifiercontract验证不同rollup链发送的batchproof并更新state,这套新的架构相当于将gas成本在各个rollup链之间分摊。根据Vitalik的描述,分摊后的gascost同样约为8000。因此,这种Layer3的设计在成本因素上同样产生了很大价值。

-安全性

这样的结构设计使得Layer2(batch mechanism)成为了一个用途明确且专一,结构简单的中间层,这使得这一层在安全性和governance-minimized上具备天然的优势。

推荐阅读