区块链(拜占庭容错 BFT)

    拜占庭容错(BFT)是一类分布式计算领域的容错技术,拜占庭容错来源于拜占庭将军问题,拜占庭将军问题是Leslie Lamport(2013年的图灵讲得主)用来为描述分布式系统一致性问题(Distributed Consensus)在论文中抽象出来一个著名的例子。

    拜占庭将军问题:拜占庭王国派十只军队攻打敌国,敌国能够抵抗五只军队的同时攻打,也就是说必须要六只以上军队调试攻打,拜占庭才能获胜。军队之间依靠通信兵骑马相互通信来协商进攻意向及进攻时间。困扰这些将军的问题是,他们不确定他们中是否有叛徒,叛徒可能擅自变更进攻意向或者进攻时间。在这种状态下,拜占庭将军们如何才能保证有多于6支军队在同一时间一起发起进攻,从而赢取战斗?

可以将拜占庭将军问题简化成了,所有忠诚的将军都能够让别的将军接收到自己的真实意图,并最终一致行动;而形式化的要求就是,“一致性”与“正确性”。

一致性每个忠诚的将军必须收到相同的命令值vi(vi是第i个将军的命令)

正确性如果第i个将军是忠诚的,那么他发送的命令和每个忠诚将军收到的vi相同。

Lamport 对拜占庭将军的问题的研究表明,当 n > 3m 时,即叛徒的个数 m 小于将军总数的 n 的 1/3 时,通过口头同步通信(假设通信是可靠的),可以构造同时满足“一致性”和“正确性”的解决方法,即将军们可以达成一致的命令

   类比到区块链系统中,其实是一样的。区块链中的共识节点(挖矿)相当于其中的将军,记账节点可能会发生故障或者被恶意控制而发送错误的消息,通常这些发生故障的节点被称为拜占庭节点,而正常的节点即为非拜占庭节点。

猜你喜欢

转载自blog.csdn.net/xuyouyu/article/details/80833923
今日推荐