大家好,这里是链客区块链技术问答社区,今天为大家讲解一下共识算法中的几个算法讲解。
链客,专为开发者而生,做到有问必答!
共识算法
POW:ProofofWork,工作证明。
要得到合理的BlockHash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。寻找合理hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到BlockHash。
简单说明:pow主要是依靠计算机的机器的性能来出块,性能越高,出块概率越大;就是谁更有权,谁就更容易产生块;这会导致大量资源浪费、网络性能低、算力太集中偏离了去中心化轨道。
POS:ProofofStake,股权证明。
PoS试图解决PoW机制中大量资源被浪费的情况。这种机制通过计算你持有占总币数的百分比以及占有币数的时间来决定记账权。每出一次块,时间会清零重新计算;PoS就是资本主义,按钱分配,钱生钱。POS虽然解决了POW的能耗的问题,但全节点确认会让区块确认的效率提不起来,且时间越长,也越容易产生马太效应,即持有币越多的人会获得更多的币奖励,从而加大贫富差距,最终产生超过50%的中心化节点
DPOS:DelegatedProofofStake,委任权益证明
股份授权证明机制,它的原理是让每一个持有比特股的人进行投票,由此产生101位代表,我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。DPOS有点像是议会制度或人民代表大会制度。优点是整个网络的能耗大大下降,网络运行成本更低;理论上更去中心化;缺点小散投票积极性不高,坏节点不能被即时处理,总是要经过一个选举才能清除坏节点。
PBFT:PracticalByzantineFaultTolerance,实用拜占庭容错算法。
n是总投票人数,f是叛徒人数,由于多数者胜,所以只有当n-2f>f的情况下,将军才会做出正确的决定,即n>3f,n最小需要取3f+1。最终决定是由中心节点确定;
PAXOS
Paxos解决这一问题利用的是选举,少数服从多数的思想,只要2N+1个节点中,有N个以上同意了某个决定,则认为系统达到了一致;
Paxos看上去是一个无主的协议,但实际上在paxos的第一个阶段,就是一个leader抢夺战,每个主机在第一阶段都会有一个提案编号,这个提案编号越大,则优先级越高。Paxos第一阶段要获得主动权,另外还需要把数据确定,这样才能展开第二个阶段
RAFT
raft的第一阶段则不涉及到数据的问题,raft的第一个阶段直选主,因为leader一旦确定,那么数据也就随之确定了,因为raft的数据是单向的从leader向follower流动的。
Leader在时。由Leader向Follower同步日志Leader挂掉了,选一个新Leader,Leader选举算法。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。