一、回到那个约束

大概想过一个很自然的问题:既然区块能装的交易有限,为什么不把区块调大一点?

这一讲的回答不是"技术上做不到"——技术上很容易。回答是:它会撞上四个各自独立的瓶颈,而且其中最要命的那个和带宽无关。

第 3 讲给出了核心不等式:

在"每个全节点都验证每笔交易"的架构下:

        T ≤ R / c

  T = 吞吐,c = 每笔交易的验证开销,R = 普通人机器的承受上限

这一讲把 c 拆开,看清楚它到底由哪几部分组成——因为扩容的每一条路,都是在攻击其中某一项。

打个比方

“把区块调大"听起来像把马路修宽:车多了就多修几条道。

但这条路有个特殊约束:每一辆车经过时,路边每一个居民都必须亲自数一遍、记一遍(这就是"每个全节点验证每笔交易”)。

于是路修得越宽,居民的负担越重,直到只剩下几家有能力雇团队的机构还能住在路边——路是宽了,可"人人都能核对"这件事没了。

⚠️ 所以扩容的真正难点从来不是"技术上能不能更快"。能。 难点在于:怎么在不把普通人赶走的前提下更快。 这个约束不放松,下面四个瓶颈就一个都绕不过去。

二、“把区块调大"具体撞上什么

假设把以太坊的区块 Gas 上限从 3000 万提到 3 亿(10 倍)。会发生四件事,它们是四个独立的瓶颈

① 带宽与传播

区块变大 ⟹ 传播变慢 ⟹ ⭐ 孤块率 ≈ 传播时间 / 出块间隔(第 16 讲)
⟹ 孤块率上升 ⟹ 小节点吃亏,算力/质押向大机构集中

⚠️ 注意这不是"网速不够"那么简单:即使带宽足够,分布在全球的节点之间的物理延迟不会变

② 状态增长

10 倍交易 ⟹ ⭐ 状态增长速度也是 10 倍
⟹ 磁盘只增不减(第 12 讲)
⟹ 且 MPT 的随机 I/O 让它比"多存点数据"糟糕得多

③ 新节点同步时间

⚠️ 这是最容易被忽略的一项,但它直接决定去中心化:

如果全量同步需要一周,⭐ 那么"跑一个全节点"就不再是普通人的选项。
⟹ 大家转向信任 RPC(第 13 讲第一层的第 ④ 类)
⟹ 第 3 讲那个"验证去中心化"崩塌

④ 重执行

⚠️ 每一个全节点,都要把每一笔交易【重新执行一遍】。

这是最根本的浪费:
   一万个节点,把同一批交易算了一万遍,
   得到的是同一个结果。

认清这一点,扩容的思路就清楚了:

区块链的"计算"不是为了算出结果——结果只需要算一次。 重复执行是为了让每个人都能【验证】结果。

所以:如果能用更便宜的方式完成"验证”,就不需要重复执行。

这一句话就是第 28 讲(有效性证明)的全部动机。

三、把扩容拆成三个独立维度

⚠️ “扩容"是一个被过度笼统使用的词。 它其实包含三件互不相干的事:

维度 瓶颈是什么 解法 对应讲次
执行 每个节点都要重跑所有交易 Rollup:只在 L2 执行一次,L1 只验证 26、27
数据 每个节点都要下载所有数据 数据可用性采样:只抽查一部分 28
状态 每个节点都要永久保存所有状态 无状态客户端 + Verkle 13

必须分开谈,因为解决其中一个完全不会解决另外两个。

⚠️ 最常见的错误:以为 Rollup 解决了扩容。
   Rollup 解决的是【执行】。
   而 Rollup 的数据仍然要发到 L1 ——
      数据瓶颈原封不动,甚至因为 Rollup 变多而更严重。

⟹ 这正是 EIP-4844 和第 29 讲存在的原因。

模块化区块链

按这个思路,一条链的职能可以被拆成四层,各自独立选择方案:

┌────────────┐
│  执行       │  跑交易,改状态         ← Rollup 在这一层
├────────────┤
│  结算       │  裁决争议,跨链桥接      ← L1 或专门的结算层
├────────────┤
│  共识       │  给交易定序
├────────────┤
│  数据可用性 │  ⭐ 保证数据能被取到     ← 第 29 讲会说明它才是根基
└────────────┘

“模块化"的价值在于每一层可以独立扩展。 代价是层与层之间的信任假设变得复杂——一条链的安全性等于它最弱那一层的安全性,而这经常被营销材料掩盖。

四、Layer 2 的严格定义

⭐ 前面几节说明了:路不能无限加宽,因为路边每个居民都得亲自数车。L2 换的是另一个思路——让大部分车走另一条路,只把"结果"拿回来给居民核对。 下面这个定义就是在说清"结果"必须硬到什么程度才算数。

“L2"这个词被严重滥用。学界和以太坊社区采用的严格定义只有一条:

即使 L2 的运营者完全不合作(作恶、宕机、跑路),用户仍然能够仅凭 L1 上的数据,单方面取回自己的资产。

这条定义的价值在于它可证伪。 用它检验一遍:

方案 数据在哪 有效性怎么保证 运营者作恶时能退出吗 是 L2 吗
Rollup L1 欺诈证明或有效性证明 ——数据在 L1,任何人都能重建状态并退出
Validium 链下 有效性证明(ZK) 不一定——数据被扣留时,你证明不了自己有多少钱 🟡 部分
Optimium 链下 欺诈证明 更糟——没数据连欺诈证明都生成不了 🟡 更弱
状态通道 双方各自持有 双方签名 ——可以拿最新签名状态上链结算
侧链 自己的链上 自己的共识 不能——桥被控制就出不来 不是

关键洞察:

Validium 的状态转移【是被密码学证明过的】——它绝对正确。
⚠️ 但如果运营者不把数据给你,
   你就【无法构造出"我拥有 X"这个陈述的证明】。

⟹ 正确性和可取回性是两件不同的事。
   数据可用性保证的是后者。

这就是第 29 讲要讲的核心问题,也是为什么这门课把数据可用性放在扩容单元的最后而不是最前——它是全部 L2 安全性的地基。

五、另一条路:状态通道

Rollup 之外还有一条更早的路线,它的取舍完全不同:

① 双方在 L1 锁定一笔资金,开启一个通道
② ⭐ 之后的每一次转账,只是【互相交换签名的余额状态】,完全不上链
   ⟹ 无限次、零成本、即时确认
③ 任何一方想退出时,把【最新的】签名状态提交到 L1 结算

安全性来自一个巧妙的机制:

⚠️ 如果一方提交了【旧的】对自己有利的状态,
另一方可以在挑战期内提交更新的状态,
   并【拿走作弊者的全部保证金】。
⟹ 作弊的期望收益为负

取舍:

✅ ⭐ 极致的性能:链下无限次交互,只有开关通道两次上链
✅ 完美的隐私:中间状态从不公开
只适合【固定参与者】的高频交互
需要【保持在线】——否则对方提交旧状态时你来不及挑战
   (闪电网络的"瞭望塔"服务就是为此存在)
资金被锁定,且通道容量有上限

状态通道和 Rollup 不是竞争关系:前者适合"少数人之间的大量交互”(支付通道),后者适合"大量陌生人之间的通用计算”。

六、分片:从执行分片到数据分片

以太坊最初的扩容路线是执行分片:把状态切成 64 份,每份由一部分验证者负责。

⚠️ 它被放弃了,原因很实在:

① ⭐ 跨分片调用极其复杂
   一次跨分片的合约调用需要异步通信和多轮确认,
   而 DeFi 的组合性依赖【同步的原子调用】

② 每个分片的安全性只有全网的 1/64
   ⟹ 攻击者只需集中攻破一个分片

③ Rollup 已经把执行搬走了
   既然执行不在 L1 上做,L1 就不需要执行分片

于是路线转向"以 Rollup 为中心”:

L1 只做三件事:共识、结算、⭐ 数据可用性
执行全部交给 Rollup
⟹ 分片的目标从"分割执行"变成"分割数据"(Danksharding,第 29 讲)

这是一次真正的战略转向,值得注意它的逻辑:不是"执行分片做不出来",而是**“有了 Rollup,L1 上就不需要执行分片了”**——问题被重新定义之后,原来的解法变得没有必要。

七、量化:区块调大 10 倍会怎样

用一张表把第二节的四个瓶颈落到数字上(数量级估算):

                        当前          10 倍区块        影响
────────────────────────────────────────────────────────────
出块间隔                12 秒         12 秒            不变
区块数据                ~100 KB       ~1 MB            传播时间↑
全球传播时间            ~1 秒         ⚠️ 数秒          孤块率↑
状态增长                ~50 GB/年     ~500 GB/年    三年就换盘
全量同步时间            数天          数周          普通人退出
每节点重执行            10 万 tx/天   100 万 tx/天     CPU↑
────────────────────────────────────────────────────────────

注意"全量同步时间"那一行:它不是渐进恶化的,而是存在一个心理与实践的临界点。一旦超过普通人能忍受的时长,全节点数量会断崖式下降——而第 3 讲说过,验证者才是安全的最后一道防线。

八、本讲小结

  • c 由四部分组成,扩容的每条路都在攻击其中一项:带宽与传播、状态增长、新节点同步时间、重执行
  • 同步时间最容易被忽略却直接决定去中心化:一旦全量同步超过普通人的忍耐限度,全节点数量会断崖下降。
  • ⭐⭐ 最根本的洞察:一万个节点把同一批交易算一万遍,得到的是同一个结果。重复执行不是为了算出结果,而是为了让每个人都能验证结果。⟹ 如果验证能用更便宜的方式完成,就不需要重复执行。
  • “扩容"必须拆成三个独立维度:执行(Rollup)、数据(DAS)、状态(无状态 + Verkle)。解决其中一个完全不解决另外两个。
  • 最常见的错误是以为 Rollup 解决了扩容——它解决的是执行,而 Rollup 的数据仍然要发到 L1,数据瓶颈原封不动。
  • 模块化的价值是各层独立扩展,代价是一条链的安全性等于它最弱那一层,而这经常被营销掩盖。
  • ⭐⭐ L2 的严格定义只有一条:运营者完全不合作时,用户能仅凭 L1 数据单方面取回资产。 按这条:Rollup 和状态通道是 L2,Validium/Optimium 是部分,侧链不是
  • 正确性和可取回性是两件事:Validium 的状态转移被密码学证明过、绝对正确,但数据被扣留时你无法构造"我拥有 X"的证明
  • 状态通道适合"少数人之间的大量交互”,代价是必须保持在线、资金被锁、容量有上限。它与 Rollup 互补而非竞争。
  • 执行分片被放弃的关键理由不是做不出来,而是跨分片调用破坏了 DeFi 依赖的同步原子性,且有了 Rollup,L1 就不需要执行分片了——问题被重新定义后,原解法变得没有必要。

思考题

  1. c 拆成四项后,说明每一项分别被哪种扩容技术攻击。
  2. 为什么"带宽够了就能调大区块"是错的?物理延迟在这里起什么作用?
  3. 全量同步时间为什么"存在临界点"而不是渐进恶化?这个临界点大概在哪?
  4. 用自己的话说清楚"重复执行是为了验证而不是为了计算"。这句话如何推导出有效性证明的必要性?
  5. 一个项目宣称"我们的 Rollup 让 TPS 提高了 100 倍"。请指出它解决了哪个维度、没解决哪个维度。
  6. 用 L2 的严格定义检验:一条"有 5/9 多签桥"的侧链是 L2 吗?为什么?
  7. Validium 的状态转移是被 ZK 证明过的,为什么用户仍然可能取不出钱?请具体描述这个场景。
  8. 状态通道适合什么场景、不适合什么场景?为什么它需要"保持在线"?瞭望塔解决了什么、没解决什么?
  9. 执行分片的跨分片调用为什么会破坏 DeFi?举一个具体的例子(比如一次跨两个协议的套利)。
  10. “以 Rollup 为中心"的路线里,L1 的职责被缩减到哪三项?为什么数据可用性被留在了 L1 而不是也搬走?