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