导语:共识是区块链的"政治制度"
如果密码学解决"谁能做什么",共识解决的是**“所有节点如何对同一份历史达成一致”**——它是区块链的治理规则,决定了系统的吞吐、终局延迟与安全预算。
本篇从两个维度拆解:
- 资源维度:PoW(算力投票)→ PoS(权益投票)→ BFT(多轮消息)
- 分叉维度:最长链 → GHOST → 终局性规则(finality)
一句话总结:共识算法是"开放网络下拜占庭容错"的工程方案——不同算法在用"成本、延迟、去中心化"三角做不同的取舍。
1. PoW:算力买安全
1.1 挖矿的经济模型
出块条件:H(block_header) < target
目标值随全网算力动态调整(比特币每 2016 块调整一次)
矿工收益 = 区块奖励 + 交易费
比特币 2024 年:6.25 BTC + 费用(2028 减半至 3.125)
安全预算 = 算力投入 × 出块间隔
51% 攻击成本 ≈ 全网总算力的一半租借成本 × 所需持续时长
1.2 PoW 的威胁模型
| 攻击 | 手段 | 后果 |
|---|---|---|
| 51% 攻击 | 控制 >50% 算力 | 双花、交易审查、历史重组 |
| Selfish Mining | 隐藏区块以获取超比例收益 | 破坏公平性 |
| 算力租赁攻击 | 短期租用算力 | 降低重组成本 |
| 空块攻击 | 只挖块不打包 | 降低吞吐 |
关键防线:重组难度随确认数指数上升。6 个确认 ≈ 0.01% 双花概率(假设攻击者算力 ≤50%)。
1.3 PoW 的能源账单
比特币年耗电 ≈ 150 TWh(与荷兰相当)
每笔 PoW 交易的能耗远高于 PoS
这推动了 2022 年以太坊 PoS 转型的决策
一句话总结:PoW 用"物理算力"构建了无许可网络中最强的抗 Sybil 防线,但能耗与吞吐是它的天花板——它把安全性建立在"花钱买难度"上。
2. PoS:权益抵押代替算力
2.1 验证者机制(以太坊为例)
质押门槛:32 ETH
验证者职责:
- 每个 Slot(12s)提议区块(随机选中)
- 参与委员会投票(attestation)
- 参与同步委员会
收益:提议奖励 + 投票奖励 + 基础收益
惩罚:离线罚金(inactivity leak)+ slash(双签、恶意投票 → 罚没质押)
2.2 惩罚机制:为什么 PoS 作恶更痛
| 行为 | 惩罚 |
|---|---|
| 双签(equivocation) | 罚没全部或大部分质押 |
| 被证明的恶意投票 | 罚没 + 声誉损失 |
| 长时间离线 | 小额漏损(inactivity leak),加速链恢复 |
Nothing-at-stake 问题:PoS 中投票几乎零成本,若无惩罚,验证者会为所有分叉投票。slash 规则让"在错误分叉投票"有真实代价,从而消解该问题。
2.3 PoW vs PoS 安全模型对比
| 维度 | PoW | PoS |
|---|---|---|
| Sybil 抵抗资源 | 算力 | 质押资本 |
| 攻击成本 | 需买算力 | 需买/借大量代币(可被罚没) |
| 惩罚手段 | 无(只能失去挖矿收益) | 罚没质押金(强威慑) |
| 终局性 | 概率性(6 块≈99.99%) | 确定性(2 epoch 内) |
| 能耗 | 极高 | 极低 |
| 去中心化风险 | 矿池集中 | 大户/质押池集中 |
一句话总结:PoS 用"可罚没的质押"替代"不可回收的算力投入",安全模型从"成本壁垒"变成"惩罚威慑+利益对齐"——这也是它能把终局性做得确定的原因。
3. Casper FFG:以太坊的终局性引擎
3.1 检查点与投票
Casper FFG(Friendly Finality Gadget)是叠加在区块建议之上的终局性层:
Epoch 结构:
Slot(12s)→ Epoch = 32 Slots(6.4 分钟)
每 Epoch 的检查点(checkpoint):
source = 当前已确认的检查点
target = 本 epoch 的检查点
验证者投票(attestation):
(source, target) 配对
若 ≥2/3 质押权重投票支持 → 该检查点被 justified
连续两层 justified 后 → finalized(终局性达成,不可回滚)
3.2 安全性证明
两个致命属性:
1. Plausible Liveness:只要 2/3 以上质押在线,链总能推进
2. Accountable Safety:两个互相冲突的检查点若都被 finalize,
则至少 1/3 质押被 slash(可被惩罚性证明)
核心引理(三明治攻击):
攻击者想让已 finalize 的链被替代,必须让验证者对自己矛盾的检查点投票
→ 这必然触发 slash 条件(冲突投票)
终局性流程:
block → checkpoint(epoch 边界)→ justified → finalized
↑
2/3 质押投票确认连续两层
3.3 与分叉选择规则的配合
以太坊的分叉选择 = LMD-GHOST + Casper FFG:
LMD(Latest Message Driven)GHOST:
从创世开始,每个高度选择"获得最多最新投票"的子块
是 GHOST 协议的优化版(快速、只需最新投票信息)
配合 FFG 的终局性约束 → 已 finalize 的区块不可被分叉
一句话总结:Casper FFG 把 PoW 的"概率终局"升级为"确定性终局"——2/3 质押投票即终局,冲突终局必然导致巨额 slash,这让 12 秒出块 + 12.8 分钟终局成为可能。
4. PBFT 与 Tendermint:消息驱动的确定性共识
4.1 PBFT 的三阶段
实用拜占庭容错(PBFT)在已知验证者集合下用多轮消息达成确定性共识:
视图(View)内三阶段:
Pre-prepare:主节点(primary)提议区块
Prepare: 各副本广播准备消息(收到 2f+1 个 → 准备完成)
Commit: 广播提交消息(收到 2f+1 个 → 提交,达成共识)
容错能力:n ≥ 3f + 1(f 为可容错节点数)
例如 4 个节点可容忍 1 个拜占庭节点
角色:Client → Primary(主节点)→ Replicas(副本)
C
│ Request
▼
Primary
╱ ╲
Replica Replica ... (n = 3f+1)
╲ ╱
共识点:2f+1 个 Prepare + 2f+1 个 Commit
4.2 Tendermint:把 BFT 放进区块链
Tendermint(Cosmos SDK 的共识层)结合了 PBFT 与 PoS:
每个高度一轮 Propose → Prevote → Precommit → Commit:
Proposer 提议区块(按质押权重轮换)
Prevote 广播投票(+2/3 → 锁定)
Precommit 广播预提交(+2/3 → 提交区块)
若 Precommit 未达成 → 下一轮新 proposer,重复
区块一旦提交 → 立即 finalize(无需确认数)
| 特性 | Tendermint |
|---|---|
| 终局性 | 立即(每个区块提交即终局) |
| 出块时间 | ~1-3 秒 |
| 容错 | ≤1/3 质押作恶可容忍 |
| 网络要求 | 部分同步网络(对延迟敏感) |
| 无许可性 | 否(需质押注册验证者) |
| 代表 | Cosmos Hub、Binance Chain、众多应用链 |
4.3 PBFT 系 vs 中本聪系
| 维度 | 中本聪共识(PoW/PoS 最长链) | PBFT/Tendermint |
|---|---|---|
| 终局性 | 概率性/延迟终局 | 即时终局 |
| 网络假设 | 最终一致(异步友好) | 部分同步(需网络可达) |
| 节点数量 | 无许可、可扩展上万 | 通常几十到几百 |
| 吞吐 | 较低(全网验证) | 高(有限验证者) |
| 分叉 | 允许临时分叉 | 不允许(轮次锁定) |
| 适用 | 公链 | 联盟链/应用链 |
一句话总结:PBFT/Tendermint 用"已知验证者 + 多轮投票"换来即时终局和高吞吐,代价是放弃无许可加入——两类共识本质是在"去中心化程度"与"终局/吞吐"之间做不同取舍。
5. 分叉选择规则:如何决定哪条链才是"主链"
5.1 最长链(中本聪)
规则:选择累计工作量最大的链(链长只是代理指标)
重组条件:攻击者需要比主链多 1 个块才能回滚
6 个确认后,重组概率指数下降
5.2 GHOST 家族
GHOST:不只是链长,还计入叔块(uncle),抵抗"自然分叉浪费"攻击
LMD-GHOST:只看最新投票 → 更快的收敛(以太坊 PoS 采用)
对比:
最长链在"网络延迟高的多分叉"场景收敛慢
GHOST 类对分叉更宽容,选择子树投票最多的路径
5.3 Avalanche:随机子采样投票
每轮随机选 K 个节点查询其偏好 → 按多数更新本地偏好
重复多轮 → 概率收敛
特性:无需全局广播、亚秒级终局(概率性)、对分叉极度宽容
5.4 分叉规则对比矩阵
| 规则 | 机制 | 终局类型 | 抗重组 | 适用 |
|---|---|---|---|---|
| 最长链 | 累计工作量/难度最大 | 概率性 | 高(需算力超越) | BTC、早期 ETH |
| GHOST | 计叔块子树权重 | 概率性 | 中高 | ETH 早期(未实现完全) |
| LMD-GHOST | 最新投票优先 | 概率性 + FFG 终局 | 高(PoS 下) | 以太坊 PoS |
| Casper FFG | 2/3 质押检查点 | 确定性 | 极高(slash 威慑) | 以太坊 PoS 终局层 |
| Tendermint | PBFT 轮次锁定 | 即时确定性 | 极高 | Cosmos 应用链 |
| Avalanche | 随机采样 | 概率性(快速) | 高 | Avalanche 子网 |
一句话总结:分叉规则决定了"链分裂时谁能活下来"——中本聪看累计工作、GHOST 看子树权重、FFG 看质押终局,越后端的规则越追求"快速收敛 + 不可回滚"。
6. 主流共识机制全景矩阵
| 机制 | 资源 | 终局性 | 出块间隔 | 去中心化 | 代表网络 |
|---|---|---|---|---|---|
| PoW | 算力 | 概率性 | 10s~10min | 高(但池化) | Bitcoin、Litecoin |
| PoS | 质押 | 确定性(FFG) | 秒级 | 中高 | Ethereum、Solana(变体) |
| DPoS | 委托投票 | 概率性 | 秒级 | 中低 | EOS、TRON、BitShares |
| PBFT | 验证者 | 即时 | 秒级 | 低(许可) | Hyperledger Fabric |
| Tendermint | PoS + PBFT | 即时 | 1-3s | 中 | Cosmos |
| Avalanche | 采样投票 | 概率性 | 亚秒 | 高 | Avalanche |
| Narwhal/Tusk | DAG+BFT | 即时 | 秒级 | 中高 | Sui |
| BFT-DAG | DAG 排序 | 即时 | 秒级 | 中高 | Aleph、DAG 系 |
6.1 如何选择共识
公链开放世界:PoW(最大去中心化)或 PoS(性能+终局)
联盟链固定成员:PBFT/Raft(高吞吐、可审计)
应用链/多链生态:Tendermint/IBC(互操作友好)
高吞吐 DeFi 结算:确定性终局优先(Tendermint、Solana)
一句话总结:没有"最好"的共识,只有"最匹配需求"的共识——公开、无许可、抗审查优先选 PoW/PoS,性能与终局优先选 BFT 系,这是所有联盟链与高吞吐公链的决策逻辑。
7. 共识安全的攻击面
7.1 长程攻击(Long-range Attack)
PoS 特有:攻击者获取早期验证者的私钥 → 从创世伪造一条新链
防线:弱主观性(weak subjectivity)——新节点信任近期的检查点
而不是从创世独立验证
7.2 腐败激励(Bribe 与 Whales)
验证者数量少 → 单一巨鲸可控制 >1/3 → 阻止终局
攻击者公开贿赂(如 MEV 提取 + 私下贿赂):
公链的"贿赂"防线弱(无监管),靠理性验证者选择长期利益
对策:更低的质押门槛、抗 MEV(PBS/MEV-Boost)、惩罚可见性
7.3 活性攻击(Liveness Attack)
验证者集体离线 → 无法达成 2/3 → 链停滞
PoS 的 inactivity leak 会逐渐烧掉离线者的质押
使在线者权重相对上升 → 链恢复活性
一句话总结:共识安全不只在数学层面——长程攻击、巨鲸集中、活性停滞都是工程现实;弱主观性、slash 与泄漏机制就是对这些"非密码学威胁"的补丁。
8. 总结
- PoW:算力买安全,概率终局,去中心化最强
- PoS:质押买安全,slash 威慑 + 确定性终局(Casper FFG)
- BFT 系:PBFT/Tendermint 即时终局,适合许可/应用链
- 分叉规则:最长链 → GHOST → FFG,从"比长度"进化到"比权重/终局"
- 选型逻辑:去中心化 ↔ 性能/终局,永远在做权衡
延伸阅读:
- 区块链基础原理与共识机制 — 共识的入门概念层
- 以太坊 EVM 与状态模型 — 共识之上如何执行状态转移
- Layer2 扩容:Rollup 架构 — L1 终局性如何被 L2 继承
- 跨链互操作 — 不同共识网络的信任桥接
- 分布式系统专题 — 更广义的分布式一致性
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。