拜占庭将军问题(Byzantine failures),是由莱斯利·兰伯特提出的点对点通信中的基本问题。含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。因此对一致性的研究一般假设信道是可靠的,或不存在本问题。
举一个例子,A国仗着自己国家经济和兵器强大经常骚扰周边小国家并掠夺资源,周边的小国家B、C、D、E这4个国家不堪其扰,于是私下偷偷沟通要联合对付A国,假如A国实力值是100。B国实力值是30、C国实力值是25、D国实力值是28、E国实力值是27。4个国家联合实力值是110。如果A国发起的联合攻打协议内容是在24日在某地上午8点集合全部兵力攻打A国并分别转发给B、C、D国后,A国收到了B、C、D国的反馈都是同意攻打A国,在规定时限内四个国家确实是集中兵力到达指定位置攻打A国则一定会胜利,如有一个国家弃权则行动失败。
拜占庭将军问题在于,在传达信息的过程中可能会出现意见分歧或者叛徒,例如,C国的国王为能安享晚年决定暗自主动投靠A国,并答应A国每年会上缴一定珠宝换取国家太平。双方已达成协议。
就在这时C国接受到A国的进攻协议,C国假意同意但实际并未携兵力到场。另外B国觉得A国的提议的时间仓促要求更改时间而D国一直怀疑C国会是叛徒对于A国的攻打协议持保留态度。
虽然四个国家都被A国欺凌但并不能达到意见一直。有专家表明,拜占庭将军问题中如有1/3是叛徒那么问题无解。
事实上区块链就可以解决这个问题,利用工作量证明——POW共识机制。
这四个国家都有资格发起进攻协议邀请,但需要完成一定难度的任务,假如首先完成任务的是B国,那么在确认任务完成后开始广播告知其他三个国家24日在某地上午8点集合,第二完成任务的D国也开始广播告知其他三个国家于30日在在某地上午8点集合。利用POW共识机制,必须听从第一个广播也就是B国,B的工作节点是有迹可循并有签字盖章。接受的其他国家在回复信息时都会在区块的节点上有记录和签字,无法篡改。
如叛徒C国在一面答应B国攻打,一面又游说D国放弃,那么其他三个国家就会在区块链上发现C国的节点不一致,能判断出C国是叛徒。在区块链中POW的不利原理,当叛徒成本很高,得不偿失。