这个女生说:弄懂本文前,你所知道的区块链可能都是错的
如果主节点不出错,协议就能正常运行。然而,如果主节点出错,或者恶意,备份节点能够通过 timeout 机制检测到主节点是否已经废掉。当出现这些异常情况时,这些备份节点就会触发视图更换(view change)协议来选举出新的主节点。但是这个过程非常缓慢,为了达成共识,PBFT 需要进行二次通信——每台计算机必须与网络中的所有计算机都进行通信。 注意:想要完整地解释PBFT算法,得非常大的篇幅!这里说一下关键部分就好。 虽然 PBFT 相比以前的算法已经有了长足的改进,但对于有大量参与者的实际场景(如公链)来说,它还不够实用。但是,至少在故障检测和领导者选举方面,它给出了一些具体的做法,这要比 Paxos 强多了。 PBFT 的贡献是举足轻重的,它整合了一系列重要的有变革意义的算法思想,不少新的共识协议从中受益匪浅,尤其是后区块链时代(post-blockchain world)。 比如,Tendermint 是一种新的共识算法,从 PBFT 中获益颇丰,且设计更加实用。在“验证”阶段,Tendermint 使用两个投票步骤来决定最终值;Tendermint 每轮都会更换新领导者。如果当前一轮的领导者在一段时间内没有响应,那么它就会被跳过,算法直接进入下一轮,并产生新的领导者。而在 PBFT 中,每次视图更换选新的领导人,都需要一次繁琐耗时的点对点连接,相比起来,Tendermint 运行更简洁,更有实用意义。 方法一小结
五、中本聪共识为什么这么牛? 方法二:使用不确定性 下面我们来介绍另一种克服 FLP 不可能的方法:不确定性。所谓不确定性,就是用概率论和不确定的方式来解决共识问题。 中本聪共识(Nakamoto Consensus.) 传统的共识中,算法的定义是这样的:一个提议者和一群决策者必须协调和沟通,才能决定下一个值。 这太复杂了,因为它需要知道网络中的每个节点,而且各个节点之间都必须沟通,即二次通信消耗。简单地说,它的拓展性有限,也不能在开放的、没有限制的系统中工作,在这种系统中,任何人都可以随时加入和离开。 中本聪共识使上述的难题成为概率性的事件,这是其高明之处所在。用不着每个节点都同意一个值,只需要所有节点都同意这个值为正确的可能性。 我们从一下几个板块来理解: 1、拜占庭容错机制——工作量证明(PoW,proof of work) 在比特币网络中,区块链本质上是去中心化的账本,用区块记录每一笔交易,每个节点都拥有这个账本,每个节点都拥有记账权。那么谁来记账呢? 在中本聪共识中,记账的节点是不确定的,哪个节点解决难题最快,算力最强,它就能够在区块链中添加新区块。而这个需要节点们去解决的难题也没有确定的公式去解决,只能依靠穷举法。 抢到了记账权,系统就会告知全网节点,获得全网确认后,这个区块便会被正式添加,这就是达成共识的过程。 每个区的生成会在区块链上加盖一个时间戳,网络就在这个链条上延续构建。 (编辑:衢州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |