CKB(Common Knowledge Base,公共知识库)是 Nervos Network 的 Layer 1 公链,2019 年 11 月主网上线。与以太坊的账户模型、比特币的纯价值 UTXO 不同,CKB 的核心设计是:用 Cell 承载任意链上状态,用 RISC-V 虚拟机验证状态转换,把计算尽量推到链下,链上专注验证与安全

本文从分层定位、状态模型、虚拟机、共识与经济模型几方面,梳理 CKB 的技术架构。

1. 分层定位:通用验证层

区块链设计里,安全性、去中心化和可扩展性往往难以在同一层同时做到极致。Nervos 采用多层架构:

  • Layer 1(CKB):优先保证安全与去中心化,作为资产与状态的最终存储与验证层
  • Layer 2 及更高层(如 Godwoken、Axon 等):承担大量计算与业务逻辑,将结果提交到 CKB 验证

CKB 因此常被称为 Universal Verification Layer(通用验证层):链下或 L2 的 Generator 负责生成新状态,CKB 节点只验证「这次状态转换是否合法」,而不在 L1 上执行全部业务计算。

1
2
3
4
5
6
7
8
┌─────────────────────────────────────────┐
│  Layer 2 / 链下 Generator(计算、业务)   │
└─────────────────┬───────────────────────┘
                  │ 提交交易(含新 Cell)
                  ▼
┌─────────────────────────────────────────┐
│  Layer 1 CKB(验证、存储、PoW 安全)      │
└─────────────────────────────────────────┘

2. Cell 模型:可编程的 UTXO

CKB 的状态单元叫 Cell,可以理解为「带数据和脚本的 UTXO」:

概念 说明
Cell 链上状态的基本容器,持有 CKB 代币和任意字节数据
消费(Consume) Cell 不可就地修改;更新状态需消费旧 Cell、创建新 Cell
Lock Script 定义「谁可以用」——访问控制,类似 Bitcoin 的 locking script
Type Script 定义「怎样用才合法」——状态转换规则,类似智能合约逻辑

一笔 CKB 交易与 Bitcoin 类似,采用 输入 / 输出 结构:输入引用并解锁已有 Cell,输出生成新的 Cell。验证节点对每个输入执行 Lock Script 和 Type Script,全部通过则交易有效。

Cell 模型的几个特点:

  • 状态与资产同构:Cell 既代表价值(CKByte),也代表存储空间
  • 并行友好:无全局账户状态树争用,不同 Cell 可并行验证
  • 链下计算、链上验证:复杂逻辑在客户端或 L2 执行,链上只跑脚本验证

3. CKB-VM:RISC-V 虚拟机

CKB 的智能合约以 Script 形式存在,在 CKB-VM 中执行。CKB-VM 基于开源 RISC-V 指令集,而非为某条链定制的私有 opcode。

设计取舍:

  • 标准 ISA:复用成熟的 RISC-V 工具链与生态,可用 C、Rust 等编译到 RISC-V 的 language 开发合约
  • 密码学原语不硬编码:哈希、签名等通过普通汇编/库在 VM 内实现,保持 VM 精简
  • Syscall:脚本通过系统调用读取交易、Cell 数据、区块头等链上上下文
  • Cycle 计量:每条指令消耗 cycle,用于限制执行时间并计算手续费

Script 执行成功返回 0,失败则交易被拒绝。Lock Script 与 Type Script 分别在解锁与类型校验阶段运行。

4. 共识:NC-MAX + Eaglesong PoW

CKB 使用 工作量证明(PoW),哈希算法为 Eaglesong,共识协议为 NC-MAX(Nervos Consensus MAX)。

NC-MAX 在 Bitcoin 中本聪共识基础上改进,目标是在不牺牲安全与去中心化的前提下,缩短确认时间、提高吞吐。主网出块间隔约 10 秒

属性
共识 NC-MAX(Eaglesong PoW)
出块时间 ~10 秒
原生代币 CKByte(CKB),最小单位 Shannon(1 CKB = 10⁸ Shannon)
地址格式 Bech32(主网 ckb1...,测试网 ckt1...

5. 经济模型:存储即价值

CKB 代币 CKByte 具有双重含义:

  1. 价值载体:转账、支付手续费
  2. 存储配额:1 CKB 对应链上 1 字节状态的占用权(「1 CKB = 1 byte」)

用户要在链上长期保存数据,需要持有相应数量的 CKB。这种 状态导向的经济模型 鼓励释放不再使用的状态(将 Cell 中的 CKB 取回),缓解状态膨胀问题。

交易手续费由矿工根据交易所消耗的 cycle 和占用的 链上存储 综合决定。

6. 节点与网络

CKB 节点通过 P2P 网络同步区块与交易。典型组件包括:

  • Full Node:完整验证区块与交易,维护链状态
  • Miner:打包交易、参与 PoW 出块
  • Light Client:轻量同步,依赖全节点提供证明

官方实现:nervosnetwork/ckb(Rust)。

7. 与以太坊/Bitcoin 的对比(简要)

维度 Bitcoin Ethereum CKB
状态模型 UTXO(仅价值) 账户 + 全局状态 Cell(价值 + 任意数据)
合约执行 Script(非图灵完备) EVM(链上执行) CKB-VM(链上验证为主)
共识 PoW PoS(The Merge 后) PoW(NC-MAX)
扩展思路 L2 / 闪电网络 Rollup、分片等 分层 + 链下 Generator

8. 进一步阅读


CKB 的架构选择可以概括为:PoW 保障 L1 安全,Cell 模型灵活表达状态,RISC-V VM 提供可验证的计算边界,代币经济绑定存储成本,计算则交给 L2 与链下。 理解这几块,就掌握了阅读 CKB 生态其他组件(钱包、dApp、L2 协议)的基础。