小论拜占庭将军问题

     拜占庭将军问题应该在刚学习区块链知识的时候都碰到过,简单来讲就是,拜占庭帝国周围的十个邻邦国觊觎帝国庞大的财富,可是凭单独的任何一个邦国都没有办法攻打下来,但是当他们联合起来攻打的时候就必定能胜利。可是在这个过程中存在着一个困扰:邻邦的将军不确定他们之中是否有叛徒没叛徒可能擅自变更进攻意向和时间,在这种情况下他们是否能够找到一种分布式协议进行远程协商来确保合作呢?

      常用解决拜占庭将军问题的一般有两种,口头协议算法和书面协议算法。但这两种思想都各有问题,口头算法无法追根溯源,书面协议算法难成体系,效率低。所以,当区块链诞生之后,有人就提议用区块链算法解决这个问题,也就是说,每个时间段,只有一位播报员能够向各个城邦传播攻打信息,避免了多人传播导致混乱的可能。但是,我在阅读的时候,却觉得,区块链算法来解决拜占庭问题并不是那么可靠。

      因为很明显,区块链算法以及那两个算法的解决方式明显是建立在各个城邦都会遵从消息的指令的基础之上的,也就是说消息信任问题。在这个过程中,当叛徒超过三分之一,那么就无法攻打胜利。虽然区块链保证了消息的确定性,但是它同样无法追踪消息来源,这不是重点,主要是一个节点(电报员)传播了一条全网信息的时候,各个城邦从什么地方才能表现出对信息的认同,达成一致性。但是在真正的区块链系统当中,想要交易的双方,是彼此有个确认的形式的,也就是执行力问题得到了保证,它会在用户输入一笔交易之后,自动按着编写的流程走下去,直到完成交易。而显然,人是无法像编程这样,自觉遵行节点传达的信息的。

你可能感兴趣的:(小论拜占庭将军问题)