Powered By Blogger

Wednesday, December 20, 2017

拜占庭将军难题

这个问题应该是真实的,但原谅我没有去真的做调查。那么,拜占庭将军的问题是什么呢?

想象一下,在古时你是权利最高的将军,手下也有3位猛将。你们一起要攻打一座城池,并包围四周。每一位猛将都守在一个方位,等待你的一声令下,就一起攻打城池。

好了,你该如何有效的传达你的讯息呢?

用狼烟?那么敌方也会看到;派遣使者告诉将军们,可是万一使者被俘虏呢,被杀呢,甚至叛变呢?

这个问题就成为了Bitcoin 想要解决的问题,进而衍生出区块链,甚至更新的技术,成为Hashgraph!

但撇开这些不说,你认为该如何解决拜占庭将军难题呢?

我的确没有正确的答案,但是我可以分享我的解决方案供大家交流。

首先最为重要的就是讯息透明化及确定性。这些东西在现代当然不是问题,大家开个Group Chat 就完了,何必那么麻烦?但难就难在这事件发生在古代,资讯及科技不发达的年代。于是,我们就必须另辟途径来思考。

要是我身为将军,我会要求每位将军在镇守的地方插上一支棍并绑上铃,而且需要有特定的节奏才是发动攻击。想象是一个四方形,每个边有支棍和铃,然后用条绳子把所有的铃和棍绑在一起。我身为大将军,我拉动绳子并附上特定节奏,他们就会明白是攻击的时刻!

但是这取决于距离多长,当天是否有大风等因素。所以这不会是最好的方案!

更好的方案是大家围成一个圈,一旦我传达进攻讯息,就可以以口传的方式传递。但是这方案的问题是无法确保当中是否有间谍或传达错误的傻瓜。相信大家也玩过口耳相传的游戏,往往第一个听到的,传到最后已经变得不成形了!

更加好的方案是,每位将军派人在城墙四周放上火油,当我点火时,每个方位的将军都会看到火,那就是进攻的时刻!

只是问题在于,要是下雨呢?火油的素质不好呢?

可见这问题在当时可说是一个大难题啊!

还是你有更好的解决方式?不妨给我指点!

No comments:

Post a Comment