第 11 章 · 为什么需要 Layer 2
为什么不能直接把区块调大?
- 练习的能力
- Protocol LiteracySystem Thinking
- 动手
- 在一条 L2 上做一笔转账,找到它对应的 L1 提交记录,算出这笔交易的真实成本构成。
- AI Lab
- 让 AI 分别解释 Optimistic 与 ZK Rollup 的提款流程,再核对某条 L2 的实际提款等待时间。
一个现实问题
你要给朋友转 5 美元。手续费 12 美元。
你没有转。
这不是一个极端例子,它在拥堵时段是常态。而它带来的后果比「贵」严重得多:整整一类用途被永久地挡在了门外。 小额支付、游戏内的每一次操作、社交应用里的每一个动作、按次计费的 API 调用——这些事情的单笔价值本来就只有几分钱,它们不是「用起来贵」,是根本不可能存在。
第 7 章解释了为什么会这样:供给几乎固定,需求可以暴涨,价格只能剧烈波动。
于是所有人第一时间都会想到同一个解法:把区块调大不就行了?
这个想法太自然了,自然到值得认真对待。这一章要回答的就是:这条路为什么走不通,以及走不通之后,人们找到了什么别的路。
思想实验
回到那个镇子和广场上的木板。
镇上决定把每块板加大十倍:从 100 行变成 1000 行。
第一年,效果立竿见影。 刻字的价格跌回一个铜板,农夫又能记他的小额欠款了。所有人都很满意。
第二年,抄板的人开始退出。 镇上的规矩是:任何人都可以自己抄一份板回家,这样谁也骗不了他。现在每天要抄的量是十倍,抄一天要花的时间从一小时变成十小时。原本有两百人在抄板,现在只剩三十人,都是雇得起帮手的大户。
第三年,仓库满了。 十年的板堆在那里。一个新搬来的人想加入,得先把过去十年的板全抄一遍才能确认现在的状态是对的。没有人愿意花半年做这件事,于是新来的人开始直接问那三十个大户:「现在谁有多少钱?」
第四年,那三十个大户说什么就是什么。
镇子绕了一圈,回到了第 2 章那个起点:账本又变成了某几个人说了算。 木板还在,规矩还在,但「任何人都能自己核对」这件事在实践中已经不成立了。
现在请停下来,换一个角度想。
镇上每天真正必须所有人一起做的事,到底有哪几件?
仔细拆一下,其实只有三件:
- 所有人都要拿得到原始内容——拿不到就没法自己核对。
- 有争议时要能判定谁对——否则吵架没有结果。
- 大家对先后顺序不能有分歧——否则同一笔钱可以花两次。
而「把一千条告示的内容算出一个结果」这件事,根本不需要所有人都做一遍。 一个人算,其他人核对就够了。
于是一个新办法出现了:
镇上出现一个书记员。他在自己家里把一千条告示处理完,然后到广场上,把两样东西刻到主板上:处理后的结果,加上那一千条告示的原始内容(用压缩写法,占一行半)。
任何人拿着那一行半的原始内容,都可以在家里自己重算一遍。如果发现书记员算错了或者作弊了,可以拿着证据到广场上举证,让他赔钱。
一千件事,占主板一行半。而且没有人需要信任这个书记员。
你来决定
镇议会要在四种方案里选一种。
观察结果
四个方案的差别,可以收成一句话:
一条链在做的事,其实可以拆成四件,而它们不必都在同一个地方做。
| 这件事 | 在问什么 | 必须所有人一起做吗 |
|---|---|---|
| 算出结果 | 一千笔交易之后,状态变成什么样 | 不必。一个人算,其他人核对就够 |
| 让所有人拿到原始输入 | 我能不能自己重算一遍 | 必须。拿不到就没法核对 |
| 判定谁对 | 有争议时,以谁的结论为准 | 必须。否则争议没有出口 |
| 确定顺序 | 哪笔在前哪笔在后 | 必须。否则同一笔钱可以花两次 |
第一行是四件事里最占资源的,也是唯一一件可以搬走的。
这就是整章的答案:不是把板加大,而是把「算」这件事搬出去,把另外三件留在主板上。
再把四个方案按「哪几件留在主板上」排一次:
| 方案 | 算 | 原始输入 | 判定 | 顺序 | 你需要相信谁 |
|---|---|---|---|---|---|
| 加大主板 | 主板 | 主板 | 主板 | 主板 | 不需要相信谁,但能核对的人越来越少 |
| 结果上板,数据不上板 | 书记员 | 书记员 | 主板 | 主板 | 书记员愿意给你数据 |
| 结果和数据都上板 | 书记员 | 主板 | 主板 | 主板 | 不需要相信书记员 |
| 独立的新板 | 新板 | 新板 | 新板 | 新板 | 保护新板的那批人 |
第三行和第二行只差一格,而这一格决定了你的资产安全取决于代码还是取决于某个人的善意。
这一格是这个领域里最值得记住的一格。
建立模型
把一条链拆成四层,从上往下看:
- 执行 算出新状态
- 数据可得 所有人拿得到原始输入
- 结算 有争议时谁说了算
- 共识 先后顺序与最终性
每一层的取舍:
| 层 | 搬出去的收益 | 搬出去的代价 |
|---|---|---|
| 执行 | 成本大幅下降,速度大幅提升 | 几乎没有,只要下面三层还在 |
| 数据可得 | 成本再降一个数量级 | 你失去自己重算和举证的能力 |
| 结算 | 不再受主链拥堵影响 | 争议没有终审,安全从零开始 |
| 共识 | 完全自由的参数 | 这时它已经是另一条链了 |
一笔交易的成本构成
这个模型能直接解释账单:
| 成本项 | 由什么决定 | 谁承担 |
|---|---|---|
| 在上层执行的费用 | 上层自己的资源定价,通常很低 | 用户 |
| 分摊的主链数据费 | 主链当时的价格,除以这一批里的交易数 | 用户,通过上层的手续费 |
| 证明或者留出举证窗口的成本 | 用哪一种方式保证书记员没作弊 | 用户,通常已折进手续费 |
| 运营方的利润 | 上层自己定 | 用户 |
这张表解释了两件经常让人困惑的事:
- 为什么上层这么便宜:主链上那笔数据费被成百上千笔交易分摊了。
- 为什么上层的费用会跟着主链一起涨:分摊的分子来自主链,主链贵了它也贵。
所以上层的成本永远不可能完全脱离主链。降低主链上那一格数据的价格,是降低上层费用最有效的手段——后面的案例里会看到这件事真实发生过。
为什么提款要等
这是最多人踩坑的地方,而它的原因其实很简单:取决于你用哪种方式证明书记员没作弊。
- 事后举证:先假设他是对的,留出一段窗口期,谁发现问题就来举证。窗口期必须足够长,所以从上层提款回主链要等上一段时间。
- 事前证明:每一批结果都附一份数学证明,主链验证通过才接受。不需要窗口期,所以提款快得多;代价是生成证明本身有成本和技术门槛。
两种做法都在被大规模使用,各有取舍,这里不展开技术细节。你要带走的只有一条:提款等待时间是由安全机制决定的,不是运营方懒。
顺带一提:绝大多数用户提款时并不会真的走这条路,而是通过第三方的流动性提供者即时换出,对方替你承担等待。那时候你付的那笔费用,买的就是这段等待时间。
它叫什么
按规则把交易算成新状态的那一部分工作。
这是四层里最占资源、也是唯一一个可以安全搬到别处去做的。因为它的结果可以被验证——一个人算,其他人拿着原始输入重算一遍就能发现问题。
记住这条判断:凡是结果可验证的工作,都可以外包;凡是需要达成一致的工作,都不能。
在出现争议时给出最终结论的那一层,也是资产最终归属的记录处。
上层之所以能借到主链的安全,靠的就是这一层:争议的最终裁决发生在主链上,用主链的规则。 这和第 1 章那个「什么时候算真的到账」的问题是同一件事,只是换到了链与链之间。
参与者就「哪些交易、按什么顺序」达成一致的过程。
它决定了先后顺序和最终性。第 3 章和第 6 章讲的就是这一层。它搬不走——如果一个系统自己决定顺序、自己决定最终性,那它就是一条独立的链,不管它自称什么。
原始输入是否所有人都真的拿得到。
这是全章最关键、也最容易被跳过的一个词。它不是「数据存在某个地方」,而是「你现在就能拿到它」。
拿不到原始输入,你就无法自己重算,无法举证,无法在运营方消失时证明自己有多少钱。判断任何一个扩容方案,第一个要问的就是这一条:原始数据在哪里,我能不能自己取到。
把执行搬到链下、把结果和原始数据都提交回主链的方案。
名字来自它的做法:把成百上千笔交易「卷」成一批,一起提交。省钱的原因就是分摊。
它的安全逻辑可以用一句话说清:你不需要相信运营方是诚实的,你只需要相信主链会在你举证时站在你这边。
判断一个自称 Rollup 的系统,只看一件事:原始数据有没有真的提交到主链上。 没有的话,它是另一种东西,可能仍然很好用,但安全假设完全不同。
把整章收成一句话:
Rollup 把执行搬出去,把结算与数据留在主链。
判断任何一个扩容方案,只问一句:原始数据在哪里?
动手
强烈建议先用测试网走一遍。 如果你要在主网上做,转账金额请控制在几美元以内——这个 Lab 的产出是一条追踪路径,不是一笔有意义的转账。不要为了做练习去桥大额资产。
在一条 L2 上做一笔转账。 从测试网水龙头领取,或者用你已有的小额资产。记下交易哈希、时间,和你付的手续费。
在 L2 的浏览器上找这笔交易的详情页。 找两样东西:它属于哪一批(通常显示为批次号或者 L1 提交交易的链接),以及这批数据提交到主链的时间。
从你交易确认,到这批数据出现在主链上,中间隔了多久?记下这个数字,它是这条 L2 的提交频率。
点进主链上那笔提交交易。 看三件事:这笔提交花了多少手续费、它包含了多少笔 L2 交易、它把数据放在了哪里。
用前两个数字做一次除法:分摊到每一笔的主链成本是多少?
算出这笔交易的真实成本构成。
| 成本项 | 金额 | 占比 |
|---|---|---|
| 你在 L2 上付的手续费总额 | 100% | |
| 其中分摊的主链数据成本 | ||
| 其中 L2 自己的执行成本与利润 |
两项加起来对不上没关系,记下差额并想一想它去哪了,这本身是个好问题。
查提款等待时间。 去这条 L2 的官方文档里找:从它提款回主链,官方说明要等多久?
再去查一件事:这条 L2 的合约能不能被升级?谁有权限?有没有时间锁? 第 9 章的那套查法在这里原样适用。
最后回答一个问题:如果这条 L2 的运营方明天关机,你的资产还能拿回来吗?靠什么拿回来?
这个问题的答案,完全取决于第五步查到的东西,而不取决于它的宣传页。
AI Lab
给 AI 一个结构化任务:
分别解释两类 Rollup 的提款流程:一类用事后举证(挑战期),
一类用事前的数学证明。
对每一类,按步骤写清楚:
1. 用户发起提款后,依次发生了什么
2. 需要等待多久,等待的原因是什么
3. 如果运营方拒绝处理用户的交易,用户有什么办法
4. 如果运营方完全停止运行,用户怎样取回资产
然后针对我指定的这条 L2,填一张表:
- 它属于哪一类
- 官方文档写的提款等待时间
- 原始数据提交到哪里
- 排序权在谁手里
- 合约升级权限在谁手里,有没有时间锁
每一项附官方文档链接。查不到写「未找到」,不要用同类项目的情况推测。然后做这个 Lab 真正的部分:打开官方文档,逐项核对。
这里有一个特别容易出错的地方,值得你专门去检查:模型经常把「通过第三方即时换出」的几分钟,说成官方提款的时间。
这两件事完全不同:
- 官方提款:走安全机制,等待时间由机制决定,不需要信任任何第三方。
- 第三方即时换出:有人在主链那边先把钱给你,自己去等。快,但你要付一笔费用,而且要信任这个第三方。
日常使用当然可以用后者,但你必须知道自己用的是哪一条路,尤其是在市场紧张、所有人都想同时出来的时候——那正是第三方的资金最可能不够用的时刻。
还有一个几乎总被跳过的问题,你自己去查:这条 L2 的合约现在由谁控制? 大多数扩容方案的合约今天仍然保留着升级权限。这不是丑闻,是发展阶段的现实,但它应该出现在你的风险清单上,而不是被一句「继承了主链的安全性」盖过去。
AI 说完之后,你必须自己验证
- 它说的等待时间,你能不能在这条 L2 的官方文档里找到同样的数字
- 它有没有区分「官方桥提款」和「通过第三方流动性即时换出」——这两个时间完全不同
- 它有没有说清两种方案在「原始数据是否提交到主链」这一点上是不是一样
- 它有没有提到运营方停机时用户怎样自救,以及这条路径是否真的可用
- 它有没有提到这条 L2 的合约升级权限在谁手里
- 它对「去中心化排序」的描述,是已经实现的还是路线图上的计划
- 凡是具体数字,有没有标注来源与时间
真实案例
这是第 8 章提过的那场争论,从本章的视角看会更清楚:主张加大区块的一方想降低费用,反对的一方担心参与门槛上升。
双方都没有错,他们只是在四层模型的取舍上选择了不同的优先级。
这场争论最终的结果不是一方说服另一方,而是行业找到了第三条路:不加大区块,把执行搬出去。今天绝大多数扩容工作都走在这条路上。
一次协议升级为主链增加了一类专门用于承载上层数据的空间,价格与普通区块空间分开形成。
效果立竿见影:依赖它的上层网络,手续费下降了一个数量级以上。
这件事验证了本章的成本模型:上层费用的大头是分摊的主链数据成本。 把这一格变便宜,上层就变便宜。它也说明了为什么上层的成本永远不能完全脱离主链。
多条上层网络出现过因为单一排序服务故障而无法处理任何交易的情况,持续时间从几十分钟到几小时不等。
关键在于理解这件事的边界:用户的资产没有丢,因为记录和裁决都在主链上;但在那段时间里没有人能做任何事,包括那些仓位正在逼近清算线的人。
这解释了为什么「排序权在谁手里」是一个必须查的问题,也解释了为什么各家都把去中心化排序列为重点。在那之前,这是一个单点。
有些方案为了把成本压到极致,选择不把原始数据提交到主链,而是交给一组委员会保管。
平时它工作得很好,费用极低。但当这组委员会出现故障、拒绝提供数据、或者被要求停止服务时,用户就陷入了一个尴尬处境:链上记录着一个状态根,但没有人能拿出对应的原始数据来证明自己该拿多少。
这不是说这类方案不能用。它是说你必须知道自己用的是哪一种,并且按对应的风险来决定放多少钱。
改一个变量
上层的费用会跟着大幅下降,这在现实中已经发生过一次。
更有意思的是第二层效果:当数据便宜到一定程度,「不把数据放主链」这个方案就失去了存在理由。 它唯一的卖点是省钱,省下的那点钱不再值得承担那份风险。
这说明一件事:很多今天看起来是技术路线之争的事,其实是价格之争。价格变了,路线自然就收敛了。
单点宕机的风险消失,抗审查能力增强——没有一个实体能决定不处理你的交易。
代价是协调成本上升:多个排序者之间要达成一致,延迟会增加,而低延迟恰恰是上层网络最大的卖点之一。
同时还有一个很现实的问题:排序权是上层网络收入的主要来源。 它去中心化之后,这笔收入归谁,是一个尚未有定论的问题。第 26 章讲协议收入时会回到这里。
短期内没有任何影响:举证窗口和日常使用都在 30 天之内。
长期的影响是:你不能再从主链上重建完整的历史。想恢复一个很久以前的状态,需要找到当时保存了数据的人。
这是一个正在被认真讨论的方向,理由是让主链的长期负担可控。它的取舍是把「永久可得」换成了「窗口期内可得」,而绝大多数用户根本不会察觉这个差别——直到他们需要的时候。
如果这条网络已经完全不可升级,那它会按现有规则永远运行下去,包括它现有的所有 bug。
如果它还处在保留升级权限的阶段,钥匙丢了意味着再也修不了,而钥匙被偷则意味着有人可以把逻辑换成自己的版本,把里面所有的资产转走。
第 9 章的四个问题在这里是最高优先级:谁能改、几个人、多久生效、你能不能察觉。对一条托管着大量资产的上层网络,这四个问题比它的 TPS 重要得多。
带走的问题
本章给了这一问一个更精确的版本:这件事需要哪一层上链?
需要所有人对顺序达成一致、需要争议有终审、需要数据谁都拿得到——这三件必须在链上。算出结果这件事不需要。
学会按层来问,你就不会再被「上链还是不上链」这种二选一的问题卡住。
上层网络的用户付的每一笔手续费里,有一部分是在替主链的数据成本买单,而这一部分的价格由主链当时的拥堵程度决定。
所以会出现一个反直觉的现象:你在上层做的事和主链毫无关系,但你的成本随主链波动。 看懂这条传导链,你才知道一个上层网络的费用什么时候会涨。
上层网络的收入主要来自两块:用户支付的手续费减去提交到主链的成本,以及排序带来的收益。
所以判断一个上层网络的生意,就看这个差额:它收的钱,减去它付给主链的钱,剩下多少。 主链变贵时,这个差额会被压缩甚至变负。第 26 章会用同样的方式拆解协议收入。
这一章把风险拆得很清楚:原始数据不在主链上,风险就在数据保管方身上;排序权在一个实体手里,风险就在它的可用性上;合约能被升级,风险就在钥匙的保管方式上。
三条各自独立,要分开问。任何一句「它继承了主链的安全性」,都应该被这三个问题逐一检验。
本章自测
能调,但代价不在当下,在几年之后。
区块变大意味着每个参与验证的人要处理、传输和存储的数据成倍增加。跟不上的人会退出,几年后能独立验证的只剩少数有资源的机构。到那时,「任何人都能自己核对」这个前提在实践中就不成立了,而这正是链最核心的价值。
一句话:调大区块不是在解决拥堵,是在用「谁能参与」交换「能处理多少」。
执行(算出新状态)、数据可得(所有人拿得到原始输入)、结算(争议时谁说了算)、共识(先后顺序与最终性)。
只有执行可以安全地搬走,因为它的结果可以被验证——一个人算,其他人拿着原始输入重算就能发现问题。
另外三件都需要「所有人达成一致」,搬走它们就等于换了一条链。
因为它决定了你需不需要信任运营方。
原始数据提交到主链,任何人都能自己重算、自己举证,运营方作弊会被抓住,你不需要相信他。
原始数据不在主链,你就无法重算、无法举证,在运营方拒绝给数据或者消失时,你甚至无法证明自己有多少钱。
所以「数据可得性」问的不是「数据存在某个地方」,而是**「我现在就能拿到它吗」**。
由安全机制决定,不是运营方拖延。
用事后举证的方案必须留出一段窗口期,让任何人有时间发现问题并提交证据,所以等待较长。用事前数学证明的方案,主链验证通过就接受,不需要窗口期,所以快得多。
要额外注意:日常使用中大多数人走的是第三方即时换出,不是官方提款。 那条路很快,但你付了一笔费用,并且承担了这个第三方的风险——尤其在所有人同时想出来的时候。
没有标准答案,但至少要检验这三条:
- 原始数据真的提交到主链了吗? 去主链上找那笔提交交易,看它包含什么。
- 排序权在谁手里? 单一排序者意味着这条网络可以停摆,也可以拒绝处理你的交易。
- 合约能不能被升级?谁有权限?有没有时间锁? 这一条最容易被那句宣传语盖过去。
三条都查完,你才知道这句话覆盖了什么、没覆盖什么。它通常是真的,但它覆盖的范围比大多数人以为的小。
一句话带走
Rollup 把执行搬出去,把结算与数据留在主链。