想象你所在的城市只有一家银行总行,全城所有人的转账都要在总行柜台办理。每天开门前,队伍已经绕了三圈:办一笔业务要验身份证、核对账本、主任签字,平均耗时十几分钟。更麻烦的是,总行一天最多处理一万笔业务,超出部分只能明天再来,于是黄牛(矿工)坐地起价,加急费(Gas 费用)水涨船高。整座城市的金融脉搏,被这家总行的柜台效率死死卡住。 这时候,银行推出了“分行模式”:总行依然保留最终账本的权威,但城市各区开设分行网点,客户在分行办业务,分行内部快速记账、快速结算,只需每天晚上把当天的汇总报告交给总行归档。总行不再处理每一笔细碎交易,只核对一张汇总表——这就是区块链 Layer 2 扩容方案的核心思想:把大量交易移到链下(分行)处理,只把最终状态提交到主链(总行)。 在区块链世界里,以太坊就是那座总行。Layer 1(一层)的每个区块空间有限,DeFi、NFT、链游等高频应用挤得水泄不通。于是聪明的工程师们设计出 Rollup、状态通道、侧链等“分行”,让主链轻装上阵。本文将用“总行与分行”的比喻,带你彻底读懂 Layer 2 的三大流派与它们背后的权衡。

岗位关联

对 AI 从业者而言,理解 Layer 2 是进入 Web3 应用开发的必备基础——无论你未来参与链上 AI 模型交易、去中心化算力市场,还是为区块链项目设计后端逻辑,都需要知道“链下加速、链上定锚”这套扩容思维,它和分布式系统、数据压缩、密码学证明的工程实践直接相关。

目录
  1. 可视化演示
  2. 扩容瓶颈
  3. 状态通道
  4. 乐观 Rollup
  5. 侧链方案
  6. AI 应用场景
  7. Python 演示
  8. 常见误区
  9. 面试题

可视化演示

展示Rollup四步架构(交易→排序器→批次→证明→L1状态根)、批处理Gas费用优化对比、以及四种L2方案(Optimistic/ZK Rollup/状态通道/侧链)TPS与安全性对比。

本节配有交互动效(进入视口后自动加载,约 3KB)。

Rollup四步架构 用户交易(tx)经排序器(seq)排序打包成批次(bth)提交证明(prf)到L1主链 仅状态根提交L1,计算在链下执行,保留主链安全性 L1←state_root(Rollup(batch(txs))) 链下计算+链上验证实现扩容

扩容瓶颈

想象总行柜台只有 3 个窗口,每笔业务平均占用 5 分钟,每天营业 24 小时也只能办 864 笔——这就是主链的硬上限。以太坊每个区块由 Gas 上限 框定,一笔普通转账消耗 21000 Gas,那么一个区块能装的交易数也就基本固定了。当链游《Axie Infinity》日活破百万时,玩家每点一下按钮都要和矿工竞价抢位置,Gas 一度飙到几百美元。这不是以太坊不努力,而是“所有人在同一个账本上记账”的架构天然受限。

\displaystyle \left| S_{\text{主链}} \right| = O(1), \qquad N_{\text{链下}} = O(\text{大})

> 主链需要存储的状态大小是常数级 O(1),而链下处理的交易数 N 可以非常大。主链不再存储每个账户的完整流水,只存一根"指纹"。1. |S_主链|:主链保存的状态体量。采用 Layer 2 后,它只存状态根,体量恒定。$$ \left| S_{\text{主链}} \right| = O(1) $$2. O(1):计算机科学中表示"常数级"。无论链下跑了一万笔还是一亿笔交易,主链背上都只多一个哈希值,不会越扛越重。$$ O(1) = \text{无论交易多少,主链负担不增} $$3. N_链下:真正在分行内部完成的交易笔数。它可以是一百万、一亿,只要分行计算资源够用。$$ N_{\text{链下}} = \text{可扩展的任意大数} $$4. 整体含义:主链的负担只跟"分行数量"和"汇总频率"相关,跟"用户交易频率"彻底解耦。这就是扩容的本质——把压力从总行柜台挪到分行机房。这套"大账套小账"的思维,是理解后面所有 Layer 2 方案的总钥匙:不管形态怎么变,都是"链下多干活、链上少操心"。
latex21 行
\displaystyle \text{TPS}_{\text{主链}} = \frac{\text{区块Gas上限}}{\text{平均每笔Gas} \times \text{出块时间}}$$ > 主链吞吐量=每个区块的工作上限 ÷(单笔交易平均消耗 × 出块间隔)。分子固定、分母刚性,所以 TPS 被锁死。 #### 逐字解析 1. **区块 Gas 上限**:每个区块能容纳的计算和存储工作量上限,比如以太坊约 3000 万 Gas。它像总行一天的工作总时长。   $$ \text{区块Gas上限} = \text{3000万} $$2. **平均每笔 Gas**:一笔普通转账平均消耗约 21000 Gas。这像办一笔业务平均要 5 分钟。   $$ \text{平均每笔Gas} \approx \text{21000} $$3. **出块时间**:区块之间平均间隔约 12 秒。它像银行每天开门营业的总时长。   $$ \text{出块时间} \approx \text{12 秒} $$4. **整体计算**:分子除以分母的乘积,得到主链极限约 15 TPS。若把整座城的转账都塞进去,排队是必然的结果。   $$ \text{TPS}_{\text{主链}} \approx \frac{3000\text{万}}{21000 \times 12} \approx 15 $$ 这套数学约束,正是 Layer 2 存在的理由:改变分母没用,得改变"所有人都在总行柜台办业务"这个结构。 ### 核心理念 分行的聪明之处在于:它不和总行抢柜台,而是客户在分行内部完成所有交易,晚上只呈交一张汇总表。汇总表很小,但它的权威来自总行的背书——这就是"**链下执行、链上锚定**"。在技术层面,分行(Layer 2 网络)负责记录每笔交易的来龙去脉,主链只保存一个"状态根"(state root)——你可以把它理解成所有账户余额的指纹。

状态通道

状态通道最像“VIP 客户固定包间”。假设你常去某家咖啡店,与其每次买咖啡都让店员跑总行刷卡,不如和店主在总行各存 100 枚代币做保证金,然后你们在包间里记账:今天你买了 10 杯、明天退 2 杯……每笔都当场在手机里把“余额快照”签名确认,根本不用惊动总行。等月底结账,你们把最终的净额快照提交给总行,总行按快照把代币分配完,通道关闭。

\displaystyle \text{root}' = H(\text{root}, \; \text{batch}_{\text{data}})

> 新的状态根 = 对(旧状态根 + 本批次所有交易数据)取哈希。主链合约只需校验这个哈希的更新是否合法,不需要逐笔重放每笔交易。1. root:旧状态根,代表打包前所有账户余额的指纹。$$ \text{root} = \text{打包前的状态指纹} $$2. batch_data:一批交易的压缩数据。排序器把几千笔交易揉成一个数据块。$$ \text{batch}_{\text{data}} = \text{批量交易摘要} $$3. H(……):SHA-256 之类的密码学哈希函数。它的特点是“输入变一点、输出全变样”,所以任何人无法篡改批次内容。$$ H = \text{单向哈希函数} $$4. root':新的状态根。主链合约根据它更新总账。数据可用性保证了任何人都能下载 batch_data 重新计算、验证打包是否诚实。Rollup 是当下最热门的 Layer 2 形态,而它又分两大流派:乐观派与零知识派。它们的区别,就像“先信任后审计”和“每张报表都附防伪证明”。
latex20 行
\displaystyle b_A^{(t)} = b_A^{(0)} - \sum_{k} t_{A \to B}^{(k)} + \sum_{j} t_{B \to A}^{(j)}$$ > A 的最终余额 = 初始锁定额 − 期间 A 转给 B 的全部金额 + 期间 B 转给 A 的全部金额。主链只认这个最终结果,中间 1000 次小额转账完全不占用主链空间。 #### 逐字解析 1. **b_A^(0)**:A 在总行锁定的初始保证金。它是通道的"押金",同时是安全性来源。   $$ b_A^{(0)} = \text{初始锁定余额} $$2. **Σ t_{A→B}^{k}**:通道开启期间,A 分 k 次转给 B 的金额总和。在通道里这些转账只发生在双方的签名快照之间。   $$ \sum_{k} t_{A \to B}^{(k)} = \text{所有 A→B 转账求和} $$3. **Σ t_{B→A}^{j}**:B 转回给 A 的金额总和。现实中双方往往是互相欠款,所以两笔求和都要算。   $$ \sum_{j} t_{B \to A}^{(j)} = \text{所有 B→A 转账求和} $$4. **整体结算**:等式右边三项都是已知数,链上合约只需要做一次加减法,就把通道关闭了。中间那 1000 次"咖啡交易"从未上链,Gas 费用趋近于零。 状态通道的代价是:资金被锁定、只能两个人(或固定小圈子)玩。它适合微支付、物联网小额计费等高频低额场景,但撑不起全局开放性生态——这也引出下一类选手:Rollup。 ### Rollup 方案 如果说状态通道是"包间对谈",Rollup 就是"整层写字楼的分行"。它不像通道那样只服务固定两人,而是把成千上万用户的交易全部收进来,由"排序器"(sequencer)像柜员叫号一样批量打包,最后只往主链提交一个汇总包。这个汇总包里包含两部分:**更新后的状态根**(账本指纹),以及**压缩过的交易数据**(数据可用性)。

乐观 Rollup

乐观 Rollup 的哲学是:先相信分行的汇总报告没问题,给它 7 天公示期。在这 7 天里,任何人对账本有疑问,都可以充当“审计员”提交欺诈证明。如果审计员证明分行某笔汇总造假,主链就回滚这笔批次、惩罚造假者(没收其质押保证金),并奖励审计员。如果 7 天没人质疑,报告就正式生效,资金解锁。这套“欺诈证明 + 挑战窗口”的机制,让安全性回到了主链层级——因为不可能有人 7 天里完全不发现错误,除非报告确实没问题。

\displaystyle \left| \pi \right| \ll \left| \text{batch} \right|, \qquad V(\pi) = \text{true} \Rightarrow \text{batch 完全正确}

> 证明的大小远小于交易批次本身。验证函数 V 接收证明 π,输出 true 就代表该批次交易绝对正确——主链不需要重放任何交易。1. |π|:零知识证明的体积。通常几百字节到几 KB,哪怕打包了几万笔交易。$$ \left| \pi \right| = \text{几百字节} $$2. |batch|:交易批次原始数据的体积,可能是几 MB 到几十 MB。$$ \left| \text{batch} \right| = \text{MB 级} $$3. V(π):主链上的验证合约,输入是证明 π。它做少量椭圆曲线运算即可确认。$$ V(\pi) = \text{秒级验证} $$4. 整体意义:主链既不重放交易、也不等待 7 天,验证即最终。所以 zkRollup 的提款是即时的,缺点是生成证明的计算开销大,且 EVM 兼容性不如乐观派成熟。
latex18 行
\displaystyle \tau_{\text{冻结}} = T_{\text{挑战}} = \text{7 天}, \qquad P_{\text{造假}} \ll P_{\text{被发现}}$$ > 资金冻结期等于挑战窗口期(通常 7 天)。造假者要冒一个几乎必败的风险:在全世界的审计员眼皮底下藏住错误。 #### 逐字解析 1. **τ_冻结**:用户从 Rollup 提款回主链时,资金要等待的冻结时长。这个"等待"不是手续费,而是留给审计员挑刺的时间。   $$ \tau_{\text{冻结}} = \text{提款等待期} $$2. **T_挑战**:挑战窗口期,以太坊生态普遍设为约 7 天。窗口期越长越安全,但用户体验越差——这是乐观派的天然短板。   $$ T_{\text{挑战}} = \text{7 天} $$3. **P_造假**:排序器造假的概率。因为每个批次数据都公布了,造假几乎必然留下可验证的痕迹。   $$ P_{\text{造假}} = \text{接近 0} $$4. **整体权衡**:乐观 Rollup 的代价是"提款要等 7 天",换来的是 EVM 全兼容——Solidity 合约几乎不用改就能跑上去,这是它生态繁荣的根本原因。 ### 零知识 Rollup 零知识 Rollup 走的是相反路线:分行每提交一张汇总表,都要附带一份**密码学小票(有效性证明)**,主链验票只需要几十毫秒。小票虽小,却能证明"这 1000 笔交易每一笔都真实合规、余额从未为负"。这套魔术依赖 zk-SNARK 等密码学原语——证明者(分行)计算量巨大,验证者(主链)几乎零成本。

侧链方案

侧链是“银行集团在海外开的独立分行”:它有自己的金库管理体系(独立共识),用 PoS 或权威节点自行出块,只是通过一座“锚定桥”和总行联通资产。用户把主链资产锁进桥的一端,侧链就等量铸造出衍生资产;你转回来时,侧链销毁衍生资产,主链解锁原资产。这条桥就是双向锚定。

\displaystyle \text{TPS}_{\text{生态总吞吐}} \approx \sum_{i} \text{TPS}_{L2_i} + \text{TPS}_{\text{主链}}

> 生态总吞吐是所有 Layer 2 方案的吞吐量之和,再加上主链自身的吞吐。Layer 2 不是谁取代谁,而是拼图式共存。1. Σ TPS_L2i:每一个 Layer 2 方案的吞吐量。不同方案定位于不同场景,状态通道管高频微支付、乐观 Rollup 管通用 DeFi、zkRollup 管即时确认的大额转账。$$ \sum_i \text{TPS}_{L2_i} = \text{所有分行吞吐之和} $$2. TPS_主链:主链自身剩余的吞吐。主链不可能完全闲置,它需要处理跨 Layer 2 的仲裁、大额结算等关键事务。$$ \text{TPS}_{\text{主链}} = \text{总行保留的能力} $$3. 整体格局:未来不是“某一条链一家独大”,而是总行 + 多种分行的混合架构。互操作协议(如跨链消息传递)、统一的监管框架一旦成熟,加密世界的“金融总城”才能真正跑起来。
latex19 行
\displaystyle \Delta_{\text{lock}} = \Delta_{\text{unlock}}$$ > 锁定的资产量恒等于解锁的资产量。桥不创造价值,只负责搬运;一旦桥被攻击,侧链的安全性就瞬间归零。 #### 逐字解析 1. **Δ_lock**:用户在桥的主链侧锁定的资产数量。锁定后,这些资产在主链被冻结,任何人无法动用。   $$ \Delta_{\text{lock}} = \text{主链锁定金额} $$2. **Δ_unlock**:用户在桥的侧链侧解锁的等量资产。侧链上铸造的"映射资产"与主链原资产 1:1 挂钩。   $$ \Delta_{\text{unlock}} = \text{侧链释放金额} $$3. **守恒关系**:两边必须严格相等。若桥的合约有漏洞,黑客可以凭空在侧链刷出资产,造成巨额损失——历史上有数亿美元被盗的惨痛教训。   $$ \Delta_{\text{lock}} = \Delta_{\text{unlock}} $$ 侧链的本质是安全换效率的分红:它不继承主链的安全性,而是自己另起炉灶。因此侧链适合对安全性要求没那么高、但需要极高定制性的场景;而"绝对不要信任桥超过主链本身"是加密圈用真金白银换来的教训。 ### 商用挑战 各"分行"都在扩张,新问题来了:分行之间资金不互通、监管总行还不知道该怎么为分行发牌照。A 用户在 Bob 链上的资产,要转到 Alice 链,得绕道总行,经历漫长的桥与手续费;机构客户则担心自己的汇总报告是否合规。跨链互操作、监管合规、用户体验三座大山,正摆在 Layer 2 面前。

AI 应用场景

链上 AI 算力市场的高频结算

阶段:数据价值交换与算力计费

解决的问题:去中心化 AI 平台中,用户调用模型、贡献训练数据、租用 GPU 算力,每一笔交互都伴随微支付。若所有结算都走主链,每次调用几千 Gas,AI 服务根本无法盈利。传统方式要么采用中心化账本牺牲透明度,要么累积大量链上交易导致吞吐崩溃

具体案例:某去中心化推理平台让用户支付代币调用 Llama-3 模型,每次推理需支付 0.01 美元。使用状态通道建立用户与推理节点间的双向微支付通道,1000 次推理在链下结算,最终只提交一次净额上链,Gas 费从每笔 0.5 美元降到总成本 0.0003 美元

Rollup 驱动的去中心化模型训练审计

阶段:模型训练贡献记录与奖励分发

解决的问题:联邦学习场景下,全球数千个节点贡献梯度更新,如果每个更新都上链,主链无法承载。AI 需要可验证的贡献记录,传统方案依赖中心服务器记分,存在作恶风险

具体案例:某项目用乐观 Rollup 配合欺诈证明:各训练节点在链下提交梯度批次与状态根,贡献奖励按批次发放,审计员可对可疑的梯度批次发起欺诈挑战。模型贡献者 7 天内可提取奖励,恶意节点一旦被证实造假即被罚没质押。这套机制让 5000 节点的训练贡献记录只占主链 0.1% 的空间

Python 演示

python61 行
import hashlibimport random  def hash_pair(a: str, b: str) -> str:    return hashlib.sha256((a + b).encode()).hexdigest()  def merkle_root(leaves):    if not leaves:        return hashlib.sha256(b'').hexdigest()    level = leaves    while len(level) > 1:        nxt = []        for i in range(0, len(level) - 1, 2):            nxt.append(hash_pair(level[i], level[i + 1]))        if len(level) % 2 == 1:            nxt.append(level[-1])        level = nxt    return level[0]  class SimpleRollup:    """极简 Rollup 模拟:链下批量交易 -> 链上仅提交 Merkle 状态根"""     def __init__(self, participants, deposit):        self.balances = {p: deposit for p in participants}        self.pending_batch = []        self.onchain_root = None     def transfer(self, sender, receiver, amount):        if self.balances[sender] < amount:            raise ValueError("insufficient balance")        self.balances[sender] -= amount        self.balances[receiver] += amount        self.pending_batch.append((sender, receiver, amount))     def rollup_commit(self):        # 将当前所有账户余额视作叶子节点,计算出状态根        leaves = [f"{p}:{self.balances[p]}" for p in sorted(self.balances)]        self.onchain_root = merkle_root(leaves)        batch_count = len(self.pending_batch)        self.pending_batch = []        return self.onchain_root, batch_count  def main():    players = ["alice", "bob", "carol"]    rollup = SimpleRollup(players, deposit=1000)    for round_no in range(5):        for _ in range(100):            s = random.choice(players)            r = random.choice([p for p in players if p != s])            rollup.transfer(s, r, random.randint(1, 5))        root, cnt = rollup.rollup_commit()        print(f"round {round_no+1}: {cnt} offchain txs -> root {root[:16]}...")    print("main chain only stores ONE root per round")  if __name__ == "__main__":    main()
目的:用 30 行代码演示 Rollup 的核心原理——先在链下批量执行 500 笔转账,每轮只往“主链”提交一个 Merkle 状态根,主链存储负担与交易笔数无关。
  1. def merkle_root(leaves)构建 Merkle 树:把账户余额两两哈希,逐层合并,最终得到一根“指纹”,任何一笔余额变动都会让根值面目全非
  2. class SimpleRollup模拟 Rollup 聚合器:内部维护账户余额和待打包的交易列表
  3. def transfer(...)链下执行转账:只修改本地 balances 字典,完全不触碰“主链”
  4. def rollup_commit(...)打包提交:把所有余额生成叶子节点,计算出状态根,并清空待打包批次
  5. self.onchain_root这是主链唯一需要存储的数据,一个 64 位的十六进制字符串
  6. for round_no in range(5)模拟 5 轮:每轮 100 笔链下交易,最终只打印 5 个根值,主链 Gas 消耗由 500 笔变为 5 次提交

常见误区

误区所有 Layer 2 都是“锦上添花”的旁路通道,黑客一攻就破,资金放在上面很不安全

正解不同流派差异巨大。Rollup(乐观与零知识)把交易数据或证明提交到主链,安全性最终由主链保证,安全等级与主链一致;只有侧链是独立共识、安全性确实弱于主链。就像“总行的安保人员(矿工)依然在为你押运汇总表”,而不是让分行保安独自看金库

为何常见:因为很多媒体把各类 Layer 2 混为一谈,且历史上确实发生过侧链桥被盗的事件,导致“L2 都不安全”的印象深入人心

误区上了 Layer 2 以后所有交易都是免费的,我再也不用关心 Gas 了

正解Layer 2 大幅降低了手续费,但不是零。Rollup 每次向主链提交汇总包仍需支付主链 Gas;用户之间的链下转账本身几乎零成本,但要存入、取回资产仍然要付主链费用。类比是:分行业务虽然便宜,但你每天还是要付总行的“押运车费”(数据可用性费用)

为何常见:市场宣传总爱强调“Cost 降低 100 倍”,加上用户体验中链下手续费确实趋近于零,容易让人误以为全部免费

误区乐观 Rollup 提款要等 7 天,体验太差,肯定是技术不成熟,不如 zkRollup 先进

正解7 天挑战期不是缺陷,而是安全模型的核心设计——它给审计员留出足够的检查时间。为了改善体验,生态出现了“流动性提供者垫付提款”等服务,用户不用真等 7 天,只是要为流动性付费。这是工程权衡,不是技术代差

为何常见:人们习惯把“更快”等同于“更好”,忽略了安全窗口的本质功能

误区侧链、状态通道、Rollup 反正都是“链下处理”,换汤不换药

正解三者架构完全不同。状态通道是两个人之间的私有账本,主链只负责打开和关闭;侧链是独立共识的一条新链,靠桥与主链互通;Rollup 则把计算移到链下、数据留在链上,安全性锚定主链。类比是:包间对谈(通道)、海外分行(侧链)、总行派驻审计团的分行(Rollup),三者能混为一谈吗?

为何常见:它们的共同点“不在主链上逐笔执行”太显眼,掩盖了安全模型天差地别的细节

面试题

Q1. Layer 2 扩容方案的核心思想是什么?

单选题 · easy

  • A.更换更强的矿机
  • B.把大量交易移到链下处理,仅提交最终状态上链← 正确答案
  • C.在主链上增加区块大小
  • D.让多个主链并行运行

答案:B。B 正确。Layer 2 的核心是“链下执行、链上锚定”。A 是挖矿硬件,与扩容无关;C 是 Layer 1 层面的事,且受限于去中心化;D 是多链方案而非某条链的 Layer 2。

Q2. 下列哪种 Layer 2 方案要求提款等待约 7 天?

单选题 · easy

  • A.状态通道
  • B.乐观 Rollup← 正确答案
  • C.零知识 Rollup
  • D.侧链

答案:B。乐观 Rollup 依赖挑战窗口期来保证安全,窗口期通常为 7 天,期间若无人提交欺诈证明,提款才最终生效。状态通道只在关闭时结算;zkRollup 因为有效性证明即时验证,提款无需等待;侧链提款快慢取决于自身共识。

Q3. 零知识 Rollup 最本质的优势是什么?

单选题 · mid

  • A.不需要排序器打包交易
  • B.主链通过验证一个小证明即可确认批次正确性← 正确答案
  • C.可以无限扩展区块空间
  • D.完全不需要主链参与

答案:B。B 正确。zkRollup 用有效性证明让主链轻量验证,无需重放交易且即时完成。A 错,zkRollup 依然需要排序器;C 错,扩展仍受限于证明生成速度;D 错,它必须定期向主链提交证明才能继承安全性。

Q4. 关于状态通道,下列说法正确有哪些?

多选题 · mid

  • A.适合高频小额转账场景← 正确答案
  • B.资金在通道期间被锁定← 正确答案
  • C.主链上记录每一笔通道内交易
  • D.最终结算只需提交净额快照← 正确答案

答案:ABD。状态通道把多轮转账放在链下,适合高频低额场景(A 对);开启时会锁定双方保证金(B 对);C 错,中间交易不上链;关闭时只把净额快照提交主链(D 对)。

Q5. 乐观 Rollup 中的“欺诈证明”是如何保证系统安全的?

单选题 · hard

  • A.每笔交易都由多个节点签名
  • B.任何人可在挑战期内证明某批次无效,系统回滚并惩罚造假者← 正确答案
  • C.排序器定期更换密钥
  • D.主链合约重放每一笔历史交易

答案:B。B 正确。挑战期内任何人都可对可疑批次提交欺诈证明,一旦验证错误成立,该批次回滚、质押者受罚,审计员获奖。A 是共识机制不是欺诈证明;C 与安全模型无关;D 会重蹈主链拥堵覆辙,违背扩容初衷。

Q6. 数据可用性(DA)在 Rollup 中的作用是什么?

多选题 · mid

  • A.让任何人都能下载数据重放交易← 正确答案
  • B.为审计和监督提供基础← 正确答案
  • C.降低主链存储成本
  • D.替代零知识证明

答案:AB。数据可用性指交易数据必须能被任何人获取(A 对),它是乐观派挑战机制和 zk 派监督的基础(B 对)。C 错,把数据发到主链正是为了不丢失,它增加了 L1 的存储成本;D 错,DA 是数据问题,zk 是证明问题,两者互补。

Q7. 侧链与主链之间资产如何流转?

单选题 · mid

  • A.直接调用主链转账合约
  • B.通过双向锚定桥锁定与铸造← 正确答案
  • C.每分钟自动同步全部余额
  • D.依赖主链矿工投票确认

答案:B。侧链通过双向锚定桥:主链资产锁定后,侧链等量铸造映射资产;返回时销毁映射资产、主链解锁原资产。A 错,侧链有自己的账本;C 错,不是全量同步;D 错,与矿工投票无关。

Q8. 下列哪一项不是 Layer 2 解决的问题?

单选题 · easy

  • A.主链 TPS 不足
  • B.交易拥堵导致 Gas 飞涨
  • C.私钥丢失导致资产无法找回← 正确答案
  • D.高频应用难以商用

答案:C。Layer 2 解决的是扩容问题——吞吐与费用(A、B、D 都是)。私钥丢失是账户管理问题,任何 L2 方案都无法恢复,需要助记词与托管方案解决,超出 Layer 2 的职责范围。

Q9. 关于 zkRollup 与乐观 Rollup 的比较,正确的有哪些?

多选题 · hard

  • A.zkRollup 验证快、提款无需等待← 正确答案
  • B.乐观 Rollup 对 EVM 兼容性更好← 正确答案
  • C.zkRollup 证明生成计算开销更大← 正确答案
  • D.乐观 Rollup 的安全性高于 zkRollup

答案:ABC。zkRollup 用有效性证明即时验证、提款快(A 对),但证明生成开销大(C 对);乐观 Rollup 默认兼容 EVM、生态成熟(B 对)。D 错,两者安全级别都锚定主链,没有明显高下,只是信任模型不同。

Q10. 某个 Rollup 批次被提交后,主链合约验证了证明并立即更新状态根。请问这是哪种方案的典型流程?

单选题 · extreme

  • A.乐观 Rollup
  • B.零知识 Rollup← 正确答案
  • C.状态通道
  • D.侧链

答案:B。立即验证证明后更新状态根,是 zkRollup 的典型特征——验证通过即最终确定。乐观 Rollup 提交后还要等待挑战窗口期才能确认;状态通道关闭时才提交一个结算事务;侧链批次提交不涉及 zk 证明,答案选 B。