拜占庭将军问题可以简单理解为:一群将军包围一座城,需要通过信使传递消息来决定“进攻”还是“撤退”,但其中可能有叛徒故意发送假消息(比如明明想进攻却谎称撤退),其他将军得想办法在有叛徒的情况下,达成一致的决策。区块链里的“共识算法”就是解决类似问题——在有节点(比如电脑)出错或故意捣乱时,让其他节点还能统一结果。
一、拜占庭将军算法(BA,Byzantine Agreement)
-
通俗解释:就像所有将军必须严格遵守一个规则:每个人先把自己的决策(进攻/撤退)发给其他人,然后每个人根据收到的所有消息,重新算一个“大多数人同意”的结果,并且这个结果必须让所有人都认可。
比如,5个将军里有1个叛徒,只要剩下4个忠诚的将军能收到彼此的真实消息,最终就能通过多轮沟通达成一致。 -
核心特点:要求所有节点(将军)都诚实参与计算,哪怕有少数叛徒,最终也能得出唯一的、大家都认可的结果。
二、实用拜占庭将军算法(PBFT,Practical Byzantine Fault Tolerance)
-
通俗解释:是对拜占庭将军算法的“简化版优化”。还是将军们传消息,但流程更高效:选一个“指挥官”(主节点)先提出一个决策(比如“进攻”),其他将军(备份节点)收到后先检查这个决策合不合理,然后把自己的意见(同意/反对)发给所有人。最后大家根据多数意见决定是否执行。
比如,指挥官说“进攻”,如果多数将军同意,就统一进攻;如果多数反对,就换个决策再投票。 -
核心特点:通过“主节点+备份节点”的分工,减少了消息传递的次数,让决策更快,能实际用在计算机系统里。
订阅专栏 解锁全文
784

被折叠的 条评论
为什么被折叠?



