Skip to content

公链架构技术演进

本文档梳理比特币、以太坊、Solana 三大公链的架构设计思路,理解区块链开发者的设计哲学,以及各自面临的技术取舍。


一、Cryptocurrency 起源

比特币要解决的核心问题:是否可以有一种电子现金,实现点对点交易,不需要中心化金融机构,同时避免双花。

年份方案技术进展
1983eCash盲签名实现匿名性,未解决双花
1997HashCash工作量证明(PoW)一定程度防双花
1998B-money分布式记账缺乏有效共识机制
2008比特币PoW + 分布式账本 + 区块链完整解决双花

二、Bitcoin 架构设计

2.1 设计目标

建立一个不会被人操控的去中心化银行,并且永远不会宕机的系统。为此设计了分布式账本编程能力受限的比特币。

2.2 哈希树

哈希树支持轻量验证:无需下载完整区块数据,仅通过 Merkle Path 即可验证交易是否包含在区块中。

2.3 链式交易结构

比特币采用 UTXO(未花费交易输出)模型,交易由输入和输出组成,多个输出可以汇总。

2.4 非对称加密

  • 私钥:本质是一个数字(随机大整数)
  • 通过椭圆曲线(secp256k1)定义加法和标量乘法
  • 私钥 → 公钥 → 地址

2.5 区块结构

区块包含区块头和交易列表,区块头中包含前一区块哈希、Merkle Root、时间戳、难度目标等。

2.6 交易锁定结构

锁定方式

  • 锁定时间字段
  • 锁定脚本字段

范例 P2PKH(Pay-to-PubkeyHash)

scriptPubKey: OP_DUP OP_HASH160 <PubkeyHash> OP_EQUALVERIFY OP_CHECKSIG
scriptSig: <Sig> <PubKey>

UTXO 交易脚本被成功执行的条件:脚本执行结果为"成功"(栈顶为 true)。

2.7 栈虚拟机

比特币栈虚拟机被故意设计成图灵不完全,因此所有验证都可以在可预测的时间内完成。对验证区块有威胁的操作符被禁用:

OP_CATOP_SUBSTROP_LEFTOP_RIGHTOP_2MULOP_2DIVOP_MULOP_DIVOP_MODOP_LSHIFTOP_RSHIFT


三、Ethereum 架构设计

3.1 设计目标

弥补比特币智能合约功能有限的问题,并确保不能受到 DoS 攻击。为此设计了可燃烧的以太币(Gas 机制)。

3.2 哈希基数树(Merkle Patricia Trie)

以太坊核心数据结构,分三步演进:

graph LR
    A["查找树 Trie"] --> B["基数树 Patricia Trie<br/>路径压缩"]
    B --> C["哈希基数树 MPT<br/>Merkle + Patricia"]

MPT 优势

  • 支持轻量验证(Merkle Proof)
  • 数据改变时的存储复用(共享子树)
  • 世界状态树存储所有账户状态

3.3 系统结构

以太坊的执行流程:

  1. 交易进入 EVM
  2. EVM 根据操作码执行(storage 操作消耗 Gas 最多)
  3. 状态转换:更新世界状态树

3.4 Layer 2 分类

Validity ProofsFraud Proofs
Data on-chainZK-RollupOptimistic Rollup
Data off-chainValidiumPlasma

L2 的通常目标是提高区块链的可扩展性


四、Solana 架构设计

4.1 设计目标

弥补以太坊的吞吐量和速度限制,在不牺牲去中心化的前提下实现横向扩展性。为此设计了全局同步的分布式系统

4.2 全局同步 vs 传统分布式

对比项传统基于超时的分布式算法全局同步的分布式算法
分布式目的允许进程独立操作系统实际是单一系统
同步性质异步操作所有进程大致同时做同一件事
同步方式依赖超时机制所有进程在同一时间做同一件事

来自 Leslie B. Lamport(1984)的分布式系统理论

4.3 节点冗余度

"节点冗余度"指网络中完成相同计算或验证的次数。这种冗余确保了网络安全性和数据一致性。

4.4 性能下降场景

情况一:不可并行的交易

Solana 的并行处理在需要顺序执行的交易时性能下降。如铸造 NFT 需要顺序处理以确保不被重复铸造,不能在所有 4096 个核心上同时执行。顺序处理能力接近以太坊(每秒几十到几百笔)。

情况二:Leader 宕机

当 Leader 节点宕机时,需要等待下一个 Leader 接替,导致短暂停顿。

4.5 SVM(Solana Virtual Machine)

  • Sealevel 是 SVM 的核心组件,通过并行处理实现"水平"扩展
  • 多个智能合约能同时运行而不影响彼此性能
  • 能同时处理数万笔交易(以太坊 EVM 逐一处理)

EVM vs SVM 对比

特性EVMSVM
执行方式顺序执行并行执行(Sealevel)
扩展方向垂直水平
智能合约语言SolidityRust/C
状态模型账户模型Account 模型 + 显式声明读写

Solana 实现高性能和低延迟的核心原因是采用了并行处理和时间戳技术(PoH)


五、未来展望

未来区块链的设计目标:解决效率与安全的问题,并且共识依旧足够去中心化。MPC、ZK 等技术都在大范围实验中。


总结

graph TB
    subgraph "Bitcoin"
        B1["UTXO 模型"]
        B2["图灵不完全脚本"]
        B3["PoW 共识"]
    end

    subgraph "Ethereum"
        E1["账户模型 + MPT"]
        E2["图灵完全 EVM"]
        E3["PoS 共识 + Gas"]
    end

    subgraph "Solana"
        S1["Account 模型"]
        S2["SVM + Sealevel 并行"]
        S3["PoH + PoS"]
    end

    B1 --> E1
    E1 --> S1
    B2 -->|"弥补编程局限"| E2
    E2 -->|"弥补吞吐量局限"| S2

三大公链各有设计取舍:比特币追求安全与去中心化,以太坊追求可编程性,Solana 追求高性能。理解它们的设计思路,有助于设计新的区块链系统。