什么是拜占庭将军问题

拜占庭将军问题也被称为“拜占庭容错”。是Leslie Lamport(2013年的图灵讲)用来为描述分布式系统一致性问题在论文中抽象出来一个著名的例子。

这个例子大意是这样的:

拜占庭帝国想要进攻一个强大的敌人,为此派出了10支军队去包围这个敌人。这个敌人虽不比拜占庭帝国,但也足以抵御5支常规拜占庭军队的同时袭击。这10支军队在分开的包围状态下同时攻击。他们任一支军队单独进攻都毫无胜算,除非有至少6支军队(一半以上)同时袭击才能攻下敌国。他们分散在敌国的四周,依靠通信兵骑马相互通信来协商进攻意向及进攻时间。困扰这些将军的问题是,他们不确定他们中是否有叛徒,叛徒可能擅自变更进攻意向或者进攻时间。拜占庭将军问题中并不去考虑通信兵是否会被截获或无法传达信息等问题,即消息传递的信道绝无问题。在这种状态下,拜占庭将军们才能保证有多于6支军队在同一时间一起发起进攻,从而赢取战斗?

小结

以上就是拜占庭将军问题。比特币和它有共性,比如,都需要让互不信任的人对一个消息达成一致认识。但是场景却又不尽相同,比如比特币是p2p网络,没有办法保证一个人发出的消息必然被其他所有人都准确接收到,为了解决相互之间的信任问题,区块链采用了椭圆加密算法机制,通过秘钥加密签名来实现。

举例:

即一个将军给1将军的回信。包括2部分内容:是否参与进攻+亲笔签名、

这个亲笔签名相当于每个将军的私钥,当1将军收到信件的时候,用每个将军的公钥分别解密信件,如果可以解开就能证明是将军们的亲笔信。拜占庭将军们之间,无法达成共识和互相之间不信任的问题,因为区块链的工作量证明和加密算法签名的机制,从而得到了完美的解决。

生活中存在与拜占庭将军问题相似的各种问题,期待区块链的普及,来修复世界的相关无解bug。

你可能感兴趣的:(什么是拜占庭将军问题)