深入解读 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 的设想
- L2 is for scaling, L3 is for customized functionality.
- L2 is for general-purpose scaling, L3 is for customized scaling
- L2 is for trustless scaling (rollups), L3 is for weakly-trusted scaling (validiums)
2. 进一步解读
- Layer2 作为 general purpose 的扩容解决方案,那么对于 Layer3 的设计可以放下单纯的扩容,去定制化地做一些 Layer2 无法轻易实现的功能,比如 privacy;
- Layer2 中 ZK-rollup 设计考虑了通用和兼容性,为整个生态提供一种通用的扩容解决方案。因此在 ZK(E)VM 的设计上或多或少牺牲了 ZK-friendly。那么 Layer3 可以针对不同应用做进一步扩容。举个例子,在 ZK 场景下,一些应用可以通过更加定制化的电路设计来获得更好的 performance;
- Layer2 中 ZK-rollup 在扩容的同时需要保证 Data Availability,在 cost 上做了妥协。因此,Layer3 可以用于低成本扩容,为不同开发者提供更多扩容方案,比如 Validium 就是一个很好的选择。
第二点和第三点中 Layer3 都是在做进一步扩容,有什么区别?
- 我认为两者是截然不同的,并且解决了现在 Layer2 不同的痛点。第二点中的定制化扩容旨在提升性能,而第三点中提到的则是一种更加 general purpose 的低成本扩容方案。
3. 小结
以上都可能是之后 Layer3 发展方向,并且也不会限定在某一种形态。一些 Dapp 会需要提供隐私功能的 Layer3,一些 dapp 会受益于低成本的扩容,一些 dapp 会因为定制化的 Layer3 带来 performance 的提升。总之,Layer3 会在 Layer2 的基础上进一步提升性能,创造更多可能性。
四、是否需要 Layer3?
看到这你可能会产生两个疑问:
- 既然 Layer3 这么牛逼,是不是可以继续往上继续叠加 Layer4、Layer5、Layer6…以达到更好的扩容效果?
- 以上提到的 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 验证。原因有以下两点组成:
- 原提交 batch 到 Layer1 会产生不低的成本,根据 Vitalik 的说法每个 batch 的成本> 400,000 gas;
- 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 点:
- Batch prover 将加入 batch mechanism 的各个 ZK-rollup 发送的多个 proof 聚合,并记录所有的 new state、old state、state delta;
- 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 未来的思考
- 二层网络是当前的最佳解决方案,但我相信多层网络结构一定会成为未来趋势;
- 基于现在大家对 Layer3 的设想,ZK 相关技术对 Layer3 会起到极大的推动作用,并且未来 Layer3 的底层技术很可能离不开 ZK,甚至基于 ZK。因此,在 ZK 领域的探索对 Layer3 的发展非常重要;
- Layer3 的概念处于早期阶段,未来一切皆有可能!但本质上 Layer3 的出现会是成本和效率驱动的。Layer3 的出现不会改变 Layer2 作为 general purpose scaling 的格局,而是在 Layer2 的基础上做更加定制化的事情;
- 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 立场无关。文章内的信息仅供参考,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。