拜占庭将军问题:在存在恶意节点(可能发送伪造、矛盾或随机消息)的网络中,如何让所有诚实节点就某一值达成一致,并持续正确运行。
PBFT
-
预准备(Pre-prepare):
主节点广播提案<view, seq, digest>。 -
准备(Prepare):
每个副本收到后,若合法则广播⟨prepare⟩消息;
当某节点收集到 2f 个不同的prepare(含自己,共 2f+1),就锁定该提案。 -
提交(Commit):
再广播⟨commit⟩;
同样收到 2f+1 个 commit 后,节点才执行请求并回复客户端。