深入解读 Layer3

作者:Yihan Xu ,@Foresight Ventures

封面:Photo by Shubham Dhage on Unsplash

一、从 Layer1 到 Layer3

Layer1 是底层区块链。Ethereum、Bitcoin、Solana 等公链都是 Layer1 区块链,它们是区块链网络的基础,各种 Layer2 都搭建在这些公链之上。

Layer2 指以太坊扩容方案。各条 Layer2 链都是单独的区块链,在保证安全性的基础上提升交易速度和 TPS。比如 Zksync、Starkware、Arbitrum、Optimism 都是不同的 Layer2 解决方案。

图片

那什么是 Layer3?

简单来说 Layer3 希望在 Layer2 的基础上完成更加定制化的设计,解决目前 Layer2 无法实现/实现起来比较困难的功能(包括定制化扩容、privacy 等),从而进一步降低成本,提升效率

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

现在有很多大佬已经提出了相关的设计思路,通过 StarkWare 提出的多层网络结构图(Layer3 的其中一种构建思路),我会做进一步的分析和总结,帮助大家理清思路。

二、StarkWare 的多层网络

以太坊多层网络的实践设想最早由 StarkWare 团队在文章"Fractal Scaling: From L2 to L3"中提出。在这种设计中,现在的 Layer2 是一种 general purpose 的扩容,在此之上,Layer3 做定制化的扩容。下面我会对图中提到的方案逐个分析(从左到右)。

1.StarkEx Volition(rollup+validium)—> 低成本扩容

在 Layer2 的方案中我们已经熟悉了 Validiums,一种通过 SNARK 算法对计算结果进行验证,数据不上传 Layer1 而是依赖于 validator 托管的扩容方案。由于数据存在链下而非直接发布到 Layer1,Validium 降低了 gas 成本并提供了更好的 privacy(数据并不向 public 公开)。但是从去中心化和安全性的角度看,Data Availability 依赖于第三方委员会,因此 Validiums 使用并不广泛。

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

2.App-specific StarkNet —> 定制化扩容

我们知道 Layer2 的电路设计是为了服务所有 Dapp,这意味着工程师设计电路的首要考虑是兼容性。因此现在的电路设计一定程度上牺牲了效率,并没有针对特定的 Dapps 进行优化。这对于强交互性的 Dapp 来说是一种的瓶颈,比如注重游戏体验和实时玩家交互的 web3 游戏。App-specific StarkNet 可以为帮助对性能要求较高的 Dapp 定制化地进行设计以达到更高的 performance。

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

3.StarkNet(Validiums)—> 低成本扩容

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

4.Privacy StarkNet —> 定制化功能

对隐私功能的实现,某种程度上也可以看作 app-specific design。虽然 ZK-rollup 对 privacy 友好,但出于去中心化和安全性的考虑,用户的交易数据仍需要在压缩后通过 calldata 发布到 Layer1 作为 history log,让所有用户都可以成为 prover 进行验证。因此以扩容为目的的 rollup 并不能实现 privacy。Layer3 的能很方便的解决了这一痛点,对于一些强隐私需求的用户,定制化地在 rollup 甚至 rollup of rollup 的基础上实现隐私功能。

三、Again,什么是 Layer3?

看完以上分析,Layer3 应该已经不那么抽象了,下面总结一下这种 Layer3 的设计到底想解决什么问题,帮助大家进一步建立对 Layer3 认知。

1.Vitalik 的设想

  1. L2 is for scaling, L3 is for customized functionality.
  2. L2 is for general-purpose scaling, L3 is for customized scaling
  3. L2 is for trustless scaling (rollups), L3 is for weakly-trusted scaling (validiums)

2. 进一步解读

  1. Layer2 作为 general purpose 的扩容解决方案,那么对于 Layer3 的设计可以放下单纯的扩容,去定制化地做一些 Layer2 无法轻易实现的功能,比如 privacy;
  2. Layer2 中 ZK-rollup 设计考虑了通用和兼容性,为整个生态提供一种通用的扩容解决方案。因此在 ZK(E)VM 的设计上或多或少牺牲了 ZK-friendly。那么 Layer3 可以针对不同应用做进一步扩容。举个例子,在 ZK 场景下,一些应用可以通过更加定制化的电路设计来获得更好的 performance;
  3. Layer2 中 ZK-rollup 在扩容的同时需要保证 Data Availability,在 cost 上做了妥协。因此,Layer3 可以用于低成本扩容,为不同开发者提供更多扩容方案,比如 Validium 就是一个很好的选择。

第二点和第三点中 Layer3 都是在做进一步扩容,有什么区别?

  • 我认为两者是截然不同的,并且解决了现在 Layer2 不同的痛点。第二点中的定制化扩容旨在提升性能,而第三点中提到的则是一种更加 general purpose 的低成本扩容方案。

3. 小结

以上都可能是之后 Layer3 发展方向,并且也不会限定在某一种形态。一些 Dapp 会需要提供隐私功能的 Layer3,一些 dapp 会受益于低成本的扩容,一些 dapp 会因为定制化的 Layer3 带来 performance 的提升。总之,Layer3 会在 Layer2 的基础上进一步提升性能,创造更多可能性。

四、是否需要 Layer3?

看到这你可能会产生两个疑问:

  1. 既然 Layer3 这么牛逼,是不是可以继续往上继续叠加 Layer4、Layer5、Layer6…以达到更好的扩容效果?
  2. 以上提到的 Layer3 的用途都可以通过二层网络结构实现。看下面👇这张 Vitalik 给出的架构对比图,把上述 Layer3 的结构直接架在 Layer1 上只作 Layer2 也没什么问题。Validium 还是能进行低成本扩容,定制化的电路设计也能为特定的项目方提供更好的 performance,打造一条隐私链也合情合理。那么为什么要多此一举地在 Layer2 之上再做一层拓展?

👇从扩容和必要性的角度逐一分析👇

1. 真的可以无限扩容吗?

当然不行。

- 计算层

从 ZK-rollup 的角度出发 (相比 optimistic rollup 更贴近这个疑问),在计算层理论上可以将 Layer3 的 ZK-rollup 生成的 ZKP 发送给 Layer2 的 ZK-rollup,然后在 Layer2 继续用 ZKP 证明 Layer3 的一堆 ZKPs,并生发送给 Layer1 做验证。

- 数据层

需要注意的是,除了计算,我们需要考虑数据存储。Rollup 链依然需要将交易数据发送到 Layer1(ZK-rollup 可以对数据进行压缩),来保证数据可用性,让用户可以通过数据验证 proof 的真实性。计算时可以用一个 ZKP 去证明一堆 ZKP,但是数据没法压缩后继续压缩,就算可以,也并不需要一个 Layer3 来完成,只需要将 Layer2 压缩后的数据用这种方式进一步压缩即可。因此,从 Data Availability 的角度出发,继续叠 Layer 并不会在明显提升 scalability。

可以参考 Vitalik 提到的:“There's always something in the design that's just not stackable, and can only give you a scalability boost once - limits to data availability, reliance on L1 bandwidth for emergency withdrawals, or many other issues.”

2. 二层还是多层网络?

我认为二层网络是当前的最佳解决方案,但未来属于多层网络。

分析这个问题,我们需要明确 Layer3 的价值是什么。

五、Layer3 的价值

4 个字概括:降本提效。

1. 深入分析成本

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

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

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

—> 简单说就是,提交 batch 存在基础成本,因此每个 batch 打包的交易越多,每笔交易分摊的 gas fee 越低。

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

Layer3 可能带来哪些优化?

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

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

已知:

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

假设在理想情况下:

  • batch cost = 400,000 gas(实际情况会更高)
  • transaction cost = 368 gas(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 的间隔时间(也就是用户感知到的 confirmation time)非常敏感,且将 confirmation time 控制在一个较短的时间窗内带来的成本非常高。

- 加入 Layer3 的 gas 情况

  • confirmation time = 12s(以太坊出块时间)分摊到每笔交易的 gas = 368 + 8000 /(5 * 12)= ~501
  • confirmation time = 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 的降低导致 transaction amount 的增加同样不会为每笔交易带来太多 gas 成本的收益。因此,Layer3 从这个角度看也更适合去做app-specific、定制化的设计(不依赖于大量的交易来抵消高昂的 batch cost)。

3. 浅谈一下效率

和成本一样,我认为做多层网络结构的原因一定躲不开提升效率,抛开成本和效率谈结构设计有多 fashion 没有任何意义。

我们知道 wrapped token 的实现降低了 Layer2 之间的互操作成本,但是效率上仍然有待提升,我们简单算一下为什么:

- Optimistic-rollup —> 14 天!

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

- ZK-rollup —> ~12 小时

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

  • 目前 Layer2 的 ZK(E)VM 需要做到 one Virtual Machine fits all Dapps,因此设计上妥协了一些 ZK-unfriendly 的设计,导致 proof 在生成时候需要额外的时间处理无法并行计算的指令;
  • 在分析成本时提到过,出于对打包交易的时间间隔和每笔交易分摊的费用的权衡,当前的 ZK-rollup 无法在短时间打包交易到 Layer1(否则 gas 太贵用户不干)。

- 加入 Layer3 之后

  • Layer3 的思路就是定制化扩容、app-specific scaling,因此,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

1. 对这种架构的解读

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

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

我认为整套 batch mechanism 的核心是以下 2 点:

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

2.Again,Layer3 的价值

- 成本

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

- 安全性

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

*Starkware 上的 SHARP 正在做类似的实现,递归的证明方式使得 proof 可以被提交到 Layer2 的 StarkNet 上,为进一步实现 Layer3 创造可能性。图片

七、对 Layer3 未来的思考

  1. 二层网络是当前的最佳解决方案,但我相信多层网络结构一定会成为未来趋势;
  2. 基于现在大家对 Layer3 的设想,ZK 相关技术对 Layer3 会起到极大的推动作用,并且未来 Layer3 的底层技术很可能离不开 ZK,甚至基于 ZK。因此,在 ZK 领域的探索对 Layer3 的发展非常重要;
  3. Layer3 的概念处于早期阶段,未来一切皆有可能!但本质上 Layer3 的出现会是成本和效率驱动的。Layer3 的出现不会改变 Layer2 作为 general purpose scaling 的格局,而是在 Layer2 的基础上做更加定制化的事情;
  4. Layer3 的发展离不开扎实的 Layer2。持续推进现在 Layer2 的生态繁荣和底层技术进展仍然是高优先级的;

Reference

https://vitalik.ca/general/2022/09/17/layer_3.html

https://medium.com/starkware/fractal-scaling-from-l2-to-l3-7fe238ecfb4f

https://medium.com/starkware/recursive-starks-78f8dd401025

https://ethereum.org/zh/layer-2/

免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。文章内的信息仅供参考,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。