什么是混合共识算法?

 共识是区块链技术的核心算法,也基本上决定了该链的效率。区块是机器之间所需要共识的内容。账户层面,通过OLog(n)的Merkle验证树,可以快速定位出被篡改的数据,遍历StateTree安全获取用户余额,防止双花的出现。

 区块链通过共识算法,让机器之间达成信任的基础,从实践上就是去解决拜占庭将军问题。BFT(拜占庭将军容错)里面,3F+1

 BFT最大的问题是节点之间的消息广播,会特别多。而且必须事先确定本次消息投票的节点基数。结合BFT投票性能差的问题,我们提出了一种方案,让BFT仅仅参与很少的投票过程,例如就是节点基数上。假定有100个备选节点,如何选出21个节点出来?每个节点记多少个块?这100个节点的能否达到了当前最高的高度,网络延迟等性能能否达标?这些信息,实际上跟我们交易没有任何关系。但是又会影响到整个链的性能。我们用PBFT去解决节点基数问题,为后续的交易广播和区块投票,提供了更高更高效的基础设施。在这一层,大家都是平等的,没有权益的参与。 

 下一步,Raft是一个Leader-Follow的算法,每一轮Term会随机选出一个Leader来,负责交易的收集和广播,其他节点Follow主节点的信息。在垂直的区块链3.0应用中,对链上的VM性能要求更高,而不是简单的栈式计算(EVM)了。例如游戏的主服务器逻辑放,如果每个节点都参与VM的计算,会造成大量的资源浪费。大数据处理系统里面,Raft可以去解决分工问题,做一个工作的调度者,可以让任务公平、安全的分发到不同的节点机器上。这样好处是可以通过几台机器,构建一个超级机器。Raft共识在我们链中,负责交易的验证广播分发,这是成块的基础,如果交易都是错误的,那就无需要进入区块了。

 最后我们结合了DPoS共识算法,随机生成当前的轮值节点,对已验证过的交易进行打包和区块头的广播。区块仅仅是个头部验证信息而已,可以快速的到达每台机器。关于轮值的节点,我们认为一个节点每次就记一次块。 出块速度由网络较好的节点决定,由他们构成了超级节点记账模式。

你可能感兴趣的:(什么是混合共识算法?)