基于这一点,区块链实际上就是一个大的分布式计算网络,它并没有一个类似中央指挥式的东西来发号施令,整个网络是完全分散的要依靠不同的节点间彼此交换信息达成共识,才能统一行动,整个过程就像无领导小组讨论一样,对此,有人就提出了疑问,万一有节点发送了错误的信息,干扰网络正常运行,或者大家产生了分歧怎么办?于是,学者们便建立了一个模型统一将这类问题称为拜占庭将军问题。
所谓拜占庭将军问题是这样的拜占庭帝国想要攻打一个国家,他派出了多少军队进行围攻,但敌国军事实力也很强,将军们必须在同一个时间一起发动进攻,才能获取胜利,现在的问题在于,每个将军都分散在敌国四周只能依靠通信兵骑马相互通信,确定进攻的时间,可是一方面,通讯兵可能会在送信过程中被敌方击杀,另一方面。据不可靠消息,在这些将军中有叛徒的存在可能会向其他将军传达虚假指令,影响他人判断,如果整个分布式网络相当于拜占庭帝国,而每个节点相当于里面的将军,那么在这种状态下该怎么做才能保证网络中的全部节点?
对于某个事情达成一致,这就是拜占庭将军问题,总的来说,拜占庭将军问题是分布式网络,必须要解决的问题,如同刚才描述的不仅各个节点之间的通讯,可能由于网络故障导致延后或者中断,更可能存在恶意节点,故意发送错误的信息干扰网络的运行,后来又有人证明出了拜占庭容错的观点,简单来说就是信息的伪造或错误并不重要。只要诚实的将军数量大于总数的2/3、即使有少部分不诚实的将军存在,整个系统也可以达成一致,于是,大家以此为基础,设计出了很多解决方案。
区块链四大核心技术中的共识机制就是为了解决这个问题而诞生的一个方案,至于具体如何解决的容我们卖个关子,我们下节课再说。