区块链基础设施

区块链架构深度解析

从 L1 到 L2,从 Optimistic Rollup 到 ZK-Rollup,深入理解各类链的架构原理、工作机制与取舍。

1. 区块链全景概览

区块链按照功能层级可以分为 L1(第一层)基础链和 L2(第二层)扩容链。L1 是独立运行的区块链网络,拥有自己的共识机制和验证节点;L2 构建在 L1 之上,利用 L1 的安全性来实现更高的交易吞吐量。

层级分类

L1 基础层

独立共识 + 独立验证。代表: Ethereum, Bitcoin, Solana, Avalanche, BNB Chain。安全性由自身节点保障,但吞吐量受限于共识开销。

L2 扩容层

依赖 L1 安全性 + 链下执行。代表: Arbitrum, Optimism, zkSync, StarkNet, Polygon zkEVM。在链下批量处理交易,定期将证明/数据提交到 L1。

侧链 Sidechain

独立共识 + 桥接 L1。代表: Polygon PoS, Ronin。有自己的验证者集合,通过桥与 L1 资产互通,安全性不完全继承 L1。

L3 应用层

构建在 L2 之上的应用链。代表: Arbitrum Orbit, StarkNet Appchain。针对特定应用场景做深度定制。

2. 不可能三角

Vitalik 提出的区块链不可能三角指出:去中心化(Decentralization)、安全性(Security)、可扩展性(Scalability)三者不可同时满足。每条链都在这三者之间做取舍。

去中心化

节点数量多、门槛低、任何人可参与验证。Bitcoin 和 Ethereum 在此维度最强——数万个节点遍布全球。代价是共识慢、吞吐低。

安全性

抵御 51% 攻击、双花攻击的能力。PoW 需要算力、PoS 需要质押资金。安全性越高,验证成本越高,节点要求越苛刻。

可扩展性

每秒能处理的交易数(TPS)。Solana 通过降低去中心化程度(高配节点)来换取 65,000 TPS。Ethereum L1 只有 ~15 TPS。

L2 的核心思路:将执行从 L1 移到链下,把安全性「锚定」在 L1 上,从而在不牺牲去中心化和安全性的前提下提升可扩展性。

3. L1 公链对比

以下对比主流 L1 公链在共识、性能、生态等维度的差异。

公链共识机制TPS出块时间最终性Gas 费核心优势主要劣势
BitcoinPoW (SHA-256)~7~10 min概率性 (6 确认 ~1h)高 ($1-50)最去中心化、最安全、数字黄金共识吞吐极低、不支持复杂智能合约
EthereumPoS (Casper)~15-30~12 sec~15 min (2 epoch)中高 ($0.5-50)最大智能合约生态、EVM 标准L1 TPS 低、Gas 波动大
SolanaPoH + Tower BFT~4,000 实测~400 ms~12 sec极低 (<$0.01)超高性能、亚秒确认节点硬件要求高、曾多次宕机
AvalancheSnowball 共识~4,500~2 sec~2 sec低 ($0.01-0.1)亚秒最终性、子网架构生态规模不及 ETH
BNB ChainPoSA (21 验证者)~160~3 sec~7.5 sec低 ($0.01-0.1)币安生态、低费用中心化程度高、仅 21 个验证者

4. 为什么需要 L2

以太坊 L1 的瓶颈在于:每个节点都必须执行每笔交易。即使升级到 PoS 和 Danksharding,L1 的吞吐上限依然远不够支撑全球级应用。

Gas 费爆炸

2021 年 NFT 热潮期间,一笔简单 ETH 转账的 Gas 费高达 $50-200。复杂 DeFi 操作甚至超过 $500。普通用户被彻底挤出。

确认慢

Ethereum 区块时间 12 秒,最终性需要 2 个 epoch (~15 min)。对于支付、游戏等需要即时反馈的场景完全不够。

状态膨胀

全节点需要存储全部状态(数百 GB),同步新节点需要数天。随着使用增长,去中心化程度反而可能下降。

竞争拥堵

所有 DApp 共享 L1 的有限区块空间,互相竞价。一个热门 NFT mint 就能导致整个网络 Gas 飙升。

L2 的解决方案:把执行搬到链下,只把最终结果和证明提交到 L1。这样 L1 只需要验证一个简短的证明,而不需要重新执行所有交易。

5. L2 扩容方案分类

L2 扩容方案经历了多代演进,从最初的状态通道到现在主流的 Rollup 方案。

状态通道 State Channel

双方在链下开通道、多次交互、最终上链结算。闪电网络(Lightning Network)是 Bitcoin 上的状态通道方案。优点:即时确认、零 Gas;缺点:只支持固定参与方、无法支持通用智能合约。

Plasma

子链定期向主链提交 Merkle Root。数据存在子链,用户通过欺诈证明退出。优点:高吞吐;缺点:数据可用性问题(子链可以扣留数据)、退出周期长(7-14天)、不支持通用计算。已基本被 Rollup 取代。

Optimistic Rollup

链下批量执行交易,将交易数据和状态根提交到 L1。默认假设交易有效,通过欺诈证明(Fraud Proof)挑战无效交易。代表:Arbitrum, Optimism, Base。

ZK-Rollup (零知识 Rollup)

链下执行交易并生成零知识证明(Validity Proof),和数据一起提交到 L1 合约验证。数学上保证正确性,无需挑战期。代表:zkSync Era, StarkNet, Polygon zkEVM, Scroll, Linea。

Validium

类似 ZK-Rollup 但数据存储在链下(Data Availability 委员会管理)。更便宜但安全性略低。代表:StarkEx (dYdX v3), Immutable X。

6. Optimistic Rollup

「乐观假设,事后验证」

Optimistic Rollup 的核心理念是乐观执行:先假设所有交易都是合法的,把它们打包后提交到 L1。如果有人发现其中包含无效交易,可以在挑战窗口期内提交「欺诈证明」来回滚。

工作流程

1. 交易提交

用户将交易发送到 L2 的 Sequencer(排序器)。Sequencer 通常是一个中心化节点,负责排序和即时回执。

2. 批量打包

Sequencer 把多笔交易打包成一个 Batch,将完整交易数据(calldata)提交到 L1 合约。数据上链确保任何人都可以重建 L2 状态。

3. 状态断言

Proposer 计算执行后的新状态根(State Root),提交到 L1 作为断言。此时假设该断言是正确的。

4. 挑战窗口

进入 7 天挑战期。任何人都可以充当 Challenger:下载交易数据、本地重新执行、如果发现状态根不一致则提交欺诈证明。

5. 欺诈证明

如果挑战成功,L1 合约回滚该 Batch 并惩罚(Slash)Proposer 的质押金。如果无人挑战,7 天后状态被确认为最终有效。

优缺点

EVM 等效性

Arbitrum 和 Optimism 基本完全兼容 EVM,现有 Solidity 合约无需修改即可部署。开发者迁移成本极低。

成熟生态

TVL 最高的两个 L2(Arbitrum ~$18B, Optimism ~$7B)都是 Optimistic Rollup。DeFi 协议迁移最完善。

技术简单

不需要复杂的密码学证明系统,实现门槛相对低,因此率先上线并占领市场。

提款延迟

7 天挑战窗口意味着从 L2 提款到 L1 需要等待 7 天。虽然有第三方桥可以快速提款(收取费用),但原生提款确实很慢。

安全假设

依赖至少有一个诚实的 Challenger 在监控。如果所有 Challenger 都离线或被审查,无效状态可能被确认。

Gas 成本

需要将完整交易数据(calldata)上链,数据成本是主要开销。EIP-4844(Proto-Danksharding)引入 Blob 后显著降低了这部分成本。

7. 零知识证明基础

「我能证明我知道,但不告诉你我知道什么」

零知识证明(Zero-Knowledge Proof, ZKP)是一种密码学协议:证明者(Prover)能向验证者(Verifier)证明某个陈述为真,而不泄露该陈述之外的任何信息。

三大核心性质

完备性 Completeness

如果陈述为真,诚实的证明者总能说服验证者。即:真的东西一定能被证明。

可靠性 Soundness

如果陈述为假,作弊的证明者无法说服验证者(除了极小的概率)。即:假的东西不可能被证明为真。

零知识性 Zero-Knowledge

验证者除了「陈述为真」这个结论外,学不到任何额外信息。即:验证过程不泄露秘密。

经典比喻:阿里巴巴洞穴

  1. 想象一个环形洞穴,中间有一道需要密码才能打开的门。洞穴有 A 和 B 两个入口。
  2. Prover(阿里巴巴)声称知道密码。Verifier 站在洞穴外面。
  3. Prover 随机选一个入口进入洞穴。Verifier 在外面喊:「从 A 出口出来!」
  4. 如果 Prover 恰好从 A 进入,直接走出即可。如果从 B 进入,就必须用密码打开中间的门才能从 A 出来。
  5. 重复 20 次,每次 Prover 都成功从指定出口出来。如果 Prover 不知道密码,每次都猜对的概率是 1/2^20 ≈ 百万分之一。
  6. Verifier 被说服 Prover 知道密码,但 Verifier 自始至终没有学到密码本身!这就是零知识证明。

数学原理:简化示例

以离散对数为例说明零知识证明的数学构造:

公共参数

选择大素数 p 和生成元 g。公开 y = g^x mod p,其中 x 是秘密。Prover 要证明他知道 x。

承诺 (Commit)

Prover 选随机数 r,计算 t = g^r mod p,发送 t 给 Verifier。

挑战 (Challenge)

Verifier 发送随机挑战值 c。

响应 (Response)

Prover 计算 s = r + c*x (mod p-1),发送 s 给 Verifier。

验证 (Verify)

Verifier 检查 g^s ≡ t * y^c (mod p)。因为 g^(r+cx) = g^r * g^(cx) = t * (g^x)^c = t * y^c。验证通过!

整个过程中 Verifier 只看到 (t, c, s),无法反推出 x。这就是零知识性的数学保障。每轮协议的可靠性是 1-1/p,多轮重复后伪造概率趋近于零。

ZKP 的两大类

交互式 (Interactive)

Prover 和 Verifier 需要多轮交互(承诺→挑战→响应)。上面的离散对数例子就是交互式的。缺点:每个 Verifier 都需要单独交互。

非交互式 (Non-Interactive)

通过 Fiat-Shamir 变换,用哈希函数替代 Verifier 的随机挑战:c = Hash(t)。Prover 生成一次证明,任何人都可以离线验证。ZK-Rollup 使用的就是非交互式证明。

交互式零知识证明演示 — 体验「不泄露秘密的证明」

选择一个秘密数字,系统会生成零知识证明。验证者可以验证你知道这个秘密,但无法得知秘密本身。

1
承诺阶段
2
挑战阶段
3
响应阶段
4
验证阶段

8. ZK-SNARK vs ZK-STARK

ZK-SNARK 和 ZK-STARK 是目前两种主流的零知识证明系统,它们在信任假设、证明大小、验证速度等维度有显著差异。

ZK-SNARK

Succinct Non-interactive ARgument of Knowledge简洁的非交互式知识论证

可信设置 (Trusted Setup)

需要一次性的 ceremony 生成公共参数 (CRS)。如果 ceremony 中的秘密「有毒废料」(toxic waste)未被销毁,可以伪造证明。著名的 Zcash Powers of Tau 仪式有上千参与者。

证明大小

~200 bytes,极其简洁。链上验证 Gas 低(~200k Gas)。这也是名字中 Succinct 的含义。

验证速度

验证极快,常数时间。适合链上验证场景(L1 合约验证 ZK 证明)。

密码学基础

基于椭圆曲线配对(Elliptic Curve Pairing)。安全性依赖离散对数困难假设。注意:不抗量子计算。

代表项目

Zcash, zkSync Era, Polygon zkEVM, Scroll, Groth16, PLONK

ZK-STARK

Scalable Transparent ARgument of Knowledge可扩展的透明知识论证

无需可信设置

完全透明,仅依赖哈希函数和有限域算术。没有 toxic waste 风险。公共参数可以从区块链数据公开推导。

证明大小

~50-100 KB,远大于 SNARK。链上验证 Gas 较高。但可以通过递归证明(STARK 套 SNARK)来压缩上链大小。

验证速度

O(log^2 n),比 SNARK 略慢但依然高效。证明生成速度比 SNARK 快。

密码学基础

仅基于哈希函数(collision-resistant hash)。安全假设更少、更保守。抗量子计算!

代表项目

StarkNet, StarkEx (dYdX v3, Immutable X, Sorare)

SNARK vs STARK

维度ZK-SNARKZK-STARK
可信设置需要(存在信任风险)不需要(完全透明)
证明大小~200 bytes (极小)~50-100 KB (较大)
验证Gas~200k Gas (便宜)~1M Gas (较贵,可递归压缩)
证明时间较慢较快(算术化更高效)
抗量子否(基于椭圆曲线)是(仅基于哈希函数)
成熟度更成熟、生态更大相对较新但发展迅速
EVM 兼容多数项目原生兼容StarkNet 使用 Cairo 语言,非 EVM

9. ZK-Rollup 工作原理

「数学证明代替信任,即时确认无需等待」

ZK-Rollup 是当前最先进的 L2 扩容方案。它将数百甚至数千笔交易在链下执行,生成一个简短的零知识证明(Validity Proof),连同压缩的交易数据一起提交到 L1 智能合约。L1 合约只需验证这个证明的正确性,即可确认所有交易的有效性。

完整工作流程

1. 用户提交交易

用户签署交易发送到 L2 的 Sequencer。交易包含:from, to, value, nonce, signature。Sequencer 返回即时回执(soft confirmation)。

2. 排序与执行

Sequencer 对交易排序并逐笔执行,更新 L2 状态树(Merkle Patricia Trie / Sparse Merkle Tree)。每笔交易的执行痕迹(execution trace)被记录下来。

3. 生成证明

Prover(证明器)接收执行痕迹,通过算术化(Arithmetization)将计算转化为多项式约束,然后运行 ZK 证明算法(Groth16 / PLONK / STARK)生成一个简洁的证明 π。

4. 数据提交

将压缩的交易数据(state diff / calldata)+ 新状态根 + 证明 π 一起提交到 L1 上的 Rollup 合约。交易数据上链是为了保证数据可用性(Data Availability)。

5. L1 验证

L1 合约执行 verify(π, public_inputs)。验证通过 → 新状态根被接受,交易立即获得 L1 级别的最终性。验证失败 → 拒绝该 Batch。

6. 最终确认

一旦 L1 上验证通过,所有交易即刻最终确定(finality)。无需等待挑战期!用户可以立即提款回 L1。

对比 Optimistic Rollup 的优势

即时最终性

证明被验证后立即最终确认。而 Optimistic 需要等 7 天挑战窗口。

安全性更强

数学证明保证正确性,不依赖诚实的 Challenger。安全性等同于底层密码学假设。

长期成本更低

验证 ZK 证明的 Gas 是固定的,与交易数量无关。Batch 越大,每笔交易分摊的验证成本越低。

隐私潜力

零知识证明天然支持隐私交易(如 Aztec Protocol),可以在不公开交易细节的情况下证明有效性。

Optimistic vs ZK Rollup 交易流程对比

点击「下一步」对比两种 Rollup 方案处理交易的不同流程和时间线。

0
用户提交交易
1
Sequencer 执行
2
提交到 L1
3
等待/验证
4
最终确认
Optimistic Rollup0s

用户提交交易

用户签署交易并发送到 L2 Sequencer

ZK-Rollup0s

用户提交交易

用户签署交易并发送到 L2 Sequencer

时间线
OP
ZK

10. ZK 电路与证明生成

从计算到证明的完整流水线

要理解 ZK-Rollup 如何工作,需要深入理解「如何把一段计算变成零知识证明」。这个过程叫做算术化(Arithmetization)。

证明生成流水线

1. 高级计算

原始程序:验证一笔交易(检查签名、余额、nonce、执行状态转换)。这是一段常规的计算逻辑。

2. 算术电路

将程序编译成算术电路(Arithmetic Circuit):只包含加法门和乘法门的有向无环图。每个变量是有限域 F_p 上的元素。

3. R1CS / AIR

将电路转化为约束系统。R1CS (Rank-1 Constraint System):每个约束形如 (a·s) ⊙ (b·s) = (c·s),其中 s 是变量向量。AIR (Algebraic Intermediate Representation):STARK 使用的约束格式,基于执行轨迹的多项式约束。

4. 多项式承诺

通过插值将约束转化为多项式等式。Prover 使用多项式承诺方案(KZG / FRI / IPA)承诺这些多项式。KZG(Kate-Zaverucha-Goldberg)用于 PLONK 系 SNARK;FRI(Fast Reed-Solomon IOP)用于 STARK。

5. 证明生成

Prover 运行证明算法,生成证明 π。这一步计算量最大,通常需要 GPU / FPGA / ASIC 加速。证明时间取决于电路规模(门的数量)。

6. 链上验证

Verifier(L1 合约)执行 verify(π, public_inputs)。SNARK 验证约 200k Gas;STARK 验证约 1M Gas(可通过递归压缩)。验证时间与原始计算量几乎无关——这就是「简洁性」。

具体示例:证明一笔转账

假设要证明 Alice 给 Bob 转 10 ETH 是合法的:

公开输入 (Public Inputs): 旧状态根 S_old, 新状态根 S_new, 交易哈希
私有输入 (Private Witness): Alice 的余额、Bob 的余额、Merkle 路径
约束 1: Alice 余额 ≥ 10(余额充足)
约束 2: Alice_new = Alice_old - 10(扣款正确)
约束 3: Bob_new = Bob_old + 10(到账正确)
约束 4: Merkle_verify(S_old, Alice_old, path_alice) = true(旧状态包含 Alice)
约束 5: Merkle_verify(S_new, Alice_new, path_alice') = true(新状态正确更新)
约束 6: ECDSA_verify(tx, Alice_pubkey) = true(签名有效)

一笔简单转账就需要数千个约束(主要来自 Merkle 哈希和 ECDSA 验证)。一个包含 1000 笔交易的 Batch 可能涉及数百万个约束。这就是为什么证明生成需要强大的计算资源。

11. 主流 L2 项目深度对比

以下深入对比当前最有影响力的 L2 项目。

ArbitrumOptimistic RollupTVL: ~$18B
技术架构

基于 Nitro 引擎,使用 WASM 编译的 Geth 执行环境。多轮交互式欺诈证明(Multi-round fraud proof)将争议缩小到单条 WASM 指令。

EVM 兼容

完全 EVM 等效(Ethereum-equivalent)。部署合约无需修改,支持所有 Solidity / Vyper 工具链。

生态

TVL 最高的 L2。GMX, Camelot, Radiant Capital, Pendle 等头部 DeFi。Arbitrum Orbit 支持自定义 L3 应用链。

提款

原生提款 7 天等待期。第三方桥(Hop, Across, Stargate)可在数分钟内完成快速提款。

Optimism (OP Stack)Optimistic RollupTVL: ~$7B
技术架构

OP Stack 是模块化的 Rollup 框架,Base (Coinbase)、Zora、Mode 等链基于 OP Stack 构建。共享 Superchain 愿景。

Fault Proof

已上线 Cannon 故障证明系统,使用 MIPS 指令集仿真单步执行。比 Arbitrum 的多轮方式更简单。

治理

OP Token + Optimism Collective 双院制治理。Retroactive Public Goods Funding(RPGF)是创新亮点。

Superchain

多条 OP Stack 链共享排序器和桥接层,形成互联的链簇。目标是统一流动性和用户体验。

zkSync EraZK-Rollup (SNARK)TVL: ~$800M
技术架构

使用自研的 Boojum 证明系统(基于 PLONK + FRI),EVM 兼容通过 LLVM 编译器实现。支持 Solidity 和 Vyper。

账户抽象

原生支持 AA(Account Abstraction),每个账户都是智能合约。支持 Gas 代付(Paymaster)、社交恢复、批量交易。

zkPorter

混合数据可用性方案:用户可选择数据上链(Rollup 模式)或链下存储(Validium 模式),在安全性和成本间灵活取舍。

Hyperchain

基于 zkSync 的 L3 框架。每条 Hyperchain 可定制 DA 层和执行环境,通过 ZK 证明递归聚合到 L1。

StarkNetZK-Rollup (STARK)TVL: ~$300M
技术架构

使用 STARK 证明系统(无可信设置、抗量子)。自研 Cairo 语言和 Sierra 编译器。不兼容 EVM 但有 Kakarot(EVM on StarkNet)。

Cairo 语言

专为 ZK 证明优化的编程语言。执行痕迹天然适配 AIR 约束系统。开发者学习曲线较陡,但证明效率更高。

递归证明

SHARP(Shared Prover)支持将多个应用的证明递归合并,分摊 L1 验证成本。单个证明可包含数万笔交易。

Appchain

Starknet Appchain 允许开发者部署定制化 L3。Loot Realms、Cartridge 等游戏项目已在使用。

Polygon zkEVMZK-Rollup (SNARK)TVL: ~$100M
技术架构

Type-2 zkEVM,力求在操作码级别兼容 EVM。使用自研的 PIL (Polynomial Identity Language) 和 eSTARK 证明器。

EVM 兼容性

目标是字节码级别的 EVM 等效性。绝大部分 Solidity 合约可直接部署,仅少数边缘情况有差异。

Polygon CDK

Chain Development Kit 允许开发者基于 zkEVM 技术栈部署自定义 ZK L2。与 Polygon 生态共享流动性。

AggLayer

聚合层将多条 Polygon CDK 链的 ZK 证明统一聚合验证,实现链间原子操作和共享安全性。

ScrollZK-Rollup (SNARK)TVL: ~$50M
技术架构

追求 Type-1 zkEVM(字节码完全等效)。使用 KZG 承诺 + 硬件加速的分布式证明网络。

EVM 等效

几乎 100% EVM 等效,包括 precompiles 和 gas 计算。目标是让迁移零摩擦。

去中心化证明

设计了去中心化 Prover 网络,任何人可以运行证明器参与生成证明并获得奖励。

社区驱动

以太坊社区原生项目,与 EF (Ethereum Foundation) 的 PSE 团队密切合作。

12. 选择指南

根据不同的应用场景,选择最合适的链或 L2 方案:

DeFi 交易所 / AMM

首选 Arbitrum(最深流动性和最大 DeFi 生态)或 zkSync Era(原生 AA + 低成本)。如果追求极致性能可考虑 Solana。

NFT / 游戏

高频低值交易 → Immutable X(StarkEx Validium, 零 Gas)或 StarkNet Appchain。资产安全优先 → Arbitrum / Optimism。

支付 / 转账

需要快速确认 → Solana 或 zkSync(ZK 即时最终性)。小额支付 → Lightning Network(比特币 L2)。

隐私应用

Aztec Protocol(基于 ZK 的隐私 L2)。或者在 StarkNet 上使用 Cairo 构建自定义隐私逻辑。

企业级应用

需要定制化 → Arbitrum Orbit / OP Stack / Polygon CDK 构建专属 L2/L3。共享安全性同时保持灵活性。

长期最优选择

ZK-Rollup 是 Vitalik 公认的终极扩容方案。随着证明技术成熟和硬件加速,ZK 在成本和速度上将全面超越 Optimistic Rollup。