用班费记账理解区块链中的BFT与CFT算法
在班级班费管理中,班委们总会遇到各种“不一致”的麻烦:有时是有人记错账,有时是有人故意造假,还有时是消息没传到位。为解决这些问题,区块链发展出两类核心共识算法——BFT(拜占庭容错)和CFT(崩溃容错)。前者能应对“故意捣乱”,后者擅长处理“意外出错”。以下通过班费场景拆解这两类算法的本质。
一、核心概念:BFT与CFT的本质区别
1. 场景引入:两种“记账混乱”
- 场景A:5人班委记账时,1人故意将“支出20元”记为“收入20元”,还偷偷修改别人的账本,试图浑水摸鱼——这是“拜占庭错误”(节点恶意行为)。
- 场景B:5人班委记账时,1人因手机没电突然离线,没收到“支出20元”的消息,导致账本漏记——这是“崩溃错误”(节点非恶意故障)。
区块链中,BFT算法专门解决场景A(恶意错误),CFT算法专门解决场景B(非恶意故障),两者的设计目标和适用场景截然不同。
二、BFT算法:能应对“故意捣乱”的记账规则
BFT(Byzantine Fault Tolerance,拜占庭容错)算法的核心是“在存在恶意节点的情况下,让诚实节点达成一致”。最典型的BFT算法包括基础BFT、PBFT等。
1. 基础BFT算法:“全员交叉验证”
场景流程
5人班委约定严格的记账规则:
即使1人故意说“支出30元”,只要剩余4人中3人诚实报告“20元”,最终仍会按20元记录(4人中3人同意,满足2/3多数)。
原理与数学逻辑
- 核心机制:通过“全员广播+超多数投票”抵消恶意节点的影响;
- 数学逻辑:
- 假设总节点数为N,恶意节点数为F,必须满足 N ≥ 3F + 1(如5节点最多容忍1个恶意节点,7节点最多容忍2个);
- 超多数(>2/3)



