Tendermint 共识是什么?2f+1 怎么理解 图 1
Tendermint 共识是什么?2f+1 怎么理解 · 图 1

一句话理解

Tendermint 是一类 BFT(拜占庭容错)共识引擎的代表,特点是:节点身份已知、出块权轮换、用“两轮投票”在 2f+1 多数下达成“确定性最终性”(一旦 commit,几乎不可能再被推翻)。Cosmos、很多 BFT 公链与联盟链都用它(或其变体 CometBFT)。

核心结构:N=3f+1,容忍 f 个坏节点

设网络有 N 个验证者,最多允许 f 个作恶,则要求 N ≥ 3f+1。为什么是 3f+1?因为要保证三件事同时成立:① 任意 2f+1 个节点能达成一致(多数);② 两个 2f+1 多数必然有至少 f+1 个诚实节点重叠(保证不会“两个多数给出冲突值”);③ 即使 f 个节点乱发,诚实的 2f+1 仍能推动进度。1/3 就是这个临界:坏节点超过 1/3,两个互不相交的“多数”就可能出现,共识可被撕裂。

一轮出块怎么走

每个高度(height)选一个 proposer(按权重轮换)。流程:proposer 广播区块 → 各验证者验证后广播 PRE-VOTE → 收到 2f+1 个 PRE-VOTE 构成“预投票证书” → 各节点广播 COMMIT → 收到 2f+1 个 COMMIT 即该高度“最终化”。若 proposer 作恶或掉线,超时后进入“prevote nil”的兜底轮次,换下一位 proposer,保证不卡死。整个过程是“确定性”的:同一输入,所有诚实节点得到同一结果。

和 PoW/PoS 的差异

Tendermint 类 BFT 给的是“即时最终性”——commit 后基本不再重组(除非 >1/3 验证者共谋作恶)。而 PoW 的“最终性”是概率性的(确认数越多越稳);PoS(如以太坊 Casper)也是投票,但引入了 RANDAO、罚没、长期离线等更复杂的无许可假设。BFT 的代价是“节点有限、身份已知、通信 O(N²)”——节点多到几千上万个就跑不动了,所以它适合“中等规模、半许可”的公链与联盟链,不适合比特币式的全开放网络。

被哪些链采用

Cosmos Hub 及其 IBC 生态、许多 BFT 公链、以及大量企业联盟链(Hyperledger 部分、各类合规链)都用 Tendermint/CometBFT 或其变体。识别方法:秒级出块 + 明确的“高度/轮次”最终性 + 验证者委员会 + 掉线会被罚(downtime jail)。理解 2f+1,是理解“为什么 BFT 公链强调验证者数量适中、不能太分散”的关键。相关:BFT 原理见 BFT 是什么?拜占庭容错的原理(公链栏目),PBFT 三轮投票对比见 PBFT 共识是什么?联盟链为什么用它

风险提示

本文仅为信息与教育内容,不构成任何投资建议。BFT 共识的安全性建立在“少于三分之一验证者作恶”上,若验证者集中度高、治理被单一方控制,最终性可被击穿;参与此类公链请核实验证者分布与罚没规则。