拜占庭将军问题
我在《 Byzantine Fault Tolerance In a Nutshell》这篇文章中进行了详细探讨。
几位将军需要就一个进攻协作计划达成共识
其中一位或一位以上将军可能是叛徒
所有将军将会遵守多数决定规则,但是可能会影响这个规则
区块链在设计上具备拜占庭容错
所有节点都是不可信的
所有节点必须就区块链的官方状态达成一个共识。
拜占庭将军问题演示了多方在只能进行一对一沟通而且沟通是不可信的基础上达成共识的难度。在这个故事中,几位拜占庭的将军带领自己的军队共同包围了一座城池。如果他们一起进攻或一起撤退,他们就是安全的;但是如果有人进攻有人撤退,那么他们就会被消灭。
将军们只能通过信使来进行沟通,而信使可能会遭遇拦截,被迫传递假消息,而且一位或一位以上将军可能是叛徒。他们的目标是在可能有存在叛徒和虚假消息的情况下,找到一种就进攻策略达成共识的方法。并且假设所有将军都遵守多数决定达成的共识。只要三分之二的将军不是叛徒,那么拜占庭将军问题就是可解决的。
区块链在设计上就是为了拜占庭容错,这就意味着网络会在部分成员可能不诚实的情况下,就区块链的官方状态达成一个共识。拜占庭将军问题的解决方案是低效的,因此区块链需要在不执行完整个解决方案的条件下实现共识的可信性。
640?wx_fmt=jpeg
工作量证明提供了一种博弈理论式的分布式共识算法。
工作量证明激励网络上的挖矿节点向计算循环的热力学界限靠近。这样做可以激励去中心化,因为相比在一个中心位置发散挖矿节点产生的热量,在两个分离的位置上的散热效果更好。注意,这种去中心化说的只是物理和网络分布上的去中心化。
工作量证明实际证明了博弈力量可以应用到协议中,因为工作量证明成功地在网络上的每个可能操作上都应用了激励机制。
工作量证明成功的原因在于它的无优化和无近似。
无优化意味着无法规避挖矿协议为了担保某一区块必须进行的 hashing。
无近似意味着拥有一个区块的过程是两极化的:有或者没有。
权益证明提供了一种内部实验博弈理论的共识算法
它依赖的是拥有用于作为权益的加密货币的节点。权益证明奖励将大多数加密货币作为权益的节点,而不是奖励计算能力最强的节点。
权益证明要求每个验证节点都是可识别的。这是因为作为权益的加密货币可能会因为任何不当行为而被没收。工作量证明并不要求节点的可识别性。
在权益证明中,与你竞争的是一组数量更多的节点。和工作量证明不同,权益证明的staking中不存在交易争执,前者需要购买挖矿硬件、连接因特网、提供冷却系统等。 |