共识机制
无中心裁判时,节点要对同一批交易及其顺序达成一致。协议通常拆成两层:
- 抗女巫 / 资源证明:谁有资格提议或投票(算力、质押、身份列表)。
- 决策规则:冲突提案如何收敛(最重链、分叉选择、quorum 投票、随机抽样)。
Nakamoto 系
开放网络、匿名加入。提议权由资源竞赛给出,冲突用「累积最多工作(或等价权重)」的链作为唯一历史。最终性是概率的:确认深度增加通常降低重组成功概率,但不存在协议层的不可逆提交;累计工作成本与攻击成功概率需分别分析。
质押系
用锁仓权益代替算力做抗女巫。PoS 本身不规定如何在冲突链之间做最终确认;具体链还要叠加分叉选择、检查点投票或委托人集合。
- PoS 通论:nothing-at-stake、长程攻击、弱主观性、罚没。
- Gasper:以太坊的 LMD-GHOST + Casper FFG。
- DPoS:票选出块人集合,轮转出块。
- Algorand:VRF 随机抽签委员会 + BA*。
BFT 系
常见等权配置使用 n=3f+1 个验证者和 2f+1 票法定人数。证书相交与跨轮投票、锁定及提交规则共同保证一致性;一般委员会规模或加权投票需要相应计算阈值。
- BFT 模型:故障模型、网络假设、\(3f+1\)、safety / liveness。
- PBFT:三阶段 + view-change,通信 \(O(n^2)\)。
- HotStuff:星型通信、QC、链式流水线,视图切换 \(O(n)\)。
- Tendermint / CometBFT:height/round、锁定规则、单块即时最终性。
- TBFT:Tencent BFT,长安链的 Tendermint 变体,轮转出块 + 非确定性交易剔除。
- Execute-Order-Validate:Fabric 的排序共识,排序层 Raft / SmartBFT,正确性在应用层。
- Streamlet:连续三个 epoch 的相邻公证块终局中间块及祖先。
Raft / Paxos 是崩溃容错(\(n \ge 2f+1\)),不是 BFT,对照见 BFT 模型。
时钟、抽样与 DAG
把「时间 / 数据传播」从「排序投票」里拆出去,或用反复随机抽样代替全员 quorum。
- PoH 与 Tower BFT:迭代哈希时钟 + 指数锁定投票。Solana。
- Avalanche Snow:\(k\)-抽样 metastable 共识。
- DAG-BFT:Narwhal 类数据面与 Bullshark / Mysticeti 排序面。
演进谱系
协议不是孤立的,多数是前一条路线的修补或拆分:
flowchart LR PoW[Nakamoto PoW<br>最重链] --> GHOST[GHOST / 叔块] GHOST --> Gasper[Gasper<br>LMD-GHOST + FFG] PoS[PoS 抗女巫] --> Gasper PoS --> DPoS[DPoS 票选轮转] PoS --> Algorand[Algorand<br>VRF 抽签 + BA*] BFT[PBFT 三阶段] --> HotStuff[HotStuff<br>链式 QC] HotStuff --> Streamlet[Streamlet<br>公证链终局] HotStuff --> DAG[DAG-BFT<br>数据 / 排序分离] BFT --> CometBFT[CometBFT<br>height / round] CometBFT --> TBFT[TBFT<br>长安链] BFT --> EoV[Execute-Order-Validate<br>排序 + 背书验证] PoW --> Snow[Avalanche Snow<br>抽样 metastable] PoS --> PoH[PoH 哈希时钟 + Tower]
这些机制分别处理参与权、历史选择、数据传播和最终确认。图中的关联表示机制关系,不代表不同协议具有相同的安全假设或提交规则。
对照
| 家族 | 提议权 | 决策规则 | 最终性 | 验证者集合 | 通信 |
|---|---|---|---|---|---|
| Nakamoto / PoW | 算力 | 最重链 | 概率 | 开放 | 区块 gossip |
| PoS + Gasper | 质押抽签 | LMD-GHOST + FFG | 约 2 epoch 经济最终 | 开放,有质押门槛 | 证明 gossip |
| DPoS | 票选代表 | 轮转 + 不可逆块 | 快,弱于 BFT | 开放治理、出块人很少 | 代表间传播 |
| PBFT | 主节点 | prepared / committed | 确定 | 许可,\(n=3f+1\) | \(O(n^2)\) |
| HotStuff | 领导者 | 三链 / 两链 QC | 确定 | 有界 | 星型 \(O(n)\) |
| CometBFT | 轮转提议者 | +2/3 prevote/precommit | 单块确定 | 有界 | gossip |
| TBFT | 每 \(N\) 块轮转 | +2/3 prevote/precommit | 单块确定 | 有界,联盟链 | gossip |
| Execute-Order-Validate | 排序层 leader | 只排全序,背书 + 验证 | 单块确定,无分叉 | 有界,联盟链 | 排序 + gossip |
| Streamlet | 每 epoch 选择领导者 | 三个连续 epoch 的相邻公证块,终局中间块 | 假设内确定 | 有界 | 提议、投票与证据广播 |
| Algorand | VRF 抽签 | BA* 两阶段投票 | 一轮概率确定 | 开放,有质押门槛 | 随机委员会门限聚合 |
| PoH + Tower | 日程领导者 | 投票锁定 | 回滚有代价 | 开放,硬件门槛 | 领导者广播 |
| Snow | 反复抽样 | 采样多数收敛 | 概率、收敛快 | 开放 | \(O(k)\) 每轮 |
| DAG-BFT | 验证者并发播批次 | 在 DAG 上提交 | 确定 | 有界 | 数据面与共识面分离 |