我们应该知道的区块链中五种最常见共识机制算法

1、POW:Proof of Work,工作量证明

QQ截图20200216144925

    POW是比特币在Block(区块)的生成过程中使用的一种共识算法,也可以说是最原始的区块链共识算法了。POW工作量证明,简单地理解就是,通过一份证明来确认做过一定量的工作。在比特币系统中,得到合理的Block Hash需要经过大量尝试计算。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算。这种工作量证明的形式,在我们日常生活中也十分常见。比如驾照,能拿到驾照,说明你已经进行过为期几个月甚至几年的练车和考试;再比如现在很火的吃鸡和王者荣耀游戏中的K/D(Kill/Death)和胜率,分值越高证明你越厉害,同时也说明你进行了大量的游戏练习和技巧学习。在区块链中,POW代表的是一种运作机制。这种机制强制要求财富的获取方式只能是通过劳动所得,也就是算力运算—挖矿。

2、POS:Proof of Stake,权益证明

QQ截图20200216154420

        权益证明最早在2013 年被提出,并 在Peercoin 系统中实现,类似于现实生活中的股东机制,拥有 股份越多的人越容易获取记账权(同时越倾向于维护网络的正常 工作)PoS试图解决在Pow 中大量资源被浪费的缺点。POS简单来说,就是一个根据持有数字货币数量和时间来分配相应利息的制度,类似平时我们在银行中存款。简而言之区块链系统会根据你的持币数量跟持币天数(币龄)给你相对应的数字货币利息。这下就很有意思了,持币有利息。并且由于POS是在一个有限的空间里完成,不是像POW那样在无限空间里寻找,因此无需大量能源消耗。

    PoW 就是社会主义,按劳分配,多劳多得。假设大多数人不会做恶,如果你想做恶,你要有压倒大多数人的算力,但不能防止矿工抱团取暖。 PoS 就是资本主义,按钱分配,钱生钱。假设富人不会做恶,毕竟做恶的目标是钱,若你富有,自然就没有做恶的动力。

    也就是说,PoS指的是一种对挖出的“矿产”——虚拟币所有权的证明。

3、DPOS:Delegated Proof of Stake,授权权益证明

QQ截图20200216155415

     DPOS又称为股份授权证明,其原理是让每一个持币人进行投票,由此产生一定数量的代表 (超级节点或者矿池),由这些超级节点代理持币人验证和记账;而这些超级节点的权利是相等的;DPOS就像董事会投票,持币者投出一定数量的节点 (董事);代表按照既定时间表,轮流产生区块,如果代表没能很好的行使权力(比如产生区块),他们会被除名,网络会选出新的超级节点来取代他们;所有的代表将收到平均水平区块所含交易费的10%作为报酬。

4、PBFT:Practical Byzantine FaultTolerance,实用拜占庭容错

QQ截图20200216160608

       实用拜占庭容错算法PBFT(Practical Byzantine Fault Tolerance),又称拜占庭共识算法。它与上面几种都不相同,PBFT以计算为基础,也没有代币奖励。由链上所有人参与投票,少于(N-1)/3个节点反对时就获得公示信息的权利。PBFT这是一种基于消息传递的大体一致性算法--具备(n-1)/3容错性,算法经过三个阶段--预准备(pre-prepare)、准备(prepare)和确认(commit)达成一致性,这些阶段可能因有1/3或以上记账人停止工作后,系统将无法提供服务而得重复进行。

      另一个问题是,少于(N-1)/3个节点的权利则直接被忽略掉,即便其中有对节点持有人较为重要的利益,可以视为“多数人暴政”的一种做法。

      拜占庭将军问题就是要解决去中心化的共识机制问题,而这个共识问题也是比特币中区块链网络所需要解决的。因为拜占庭将军们是分散的,没有一个中心的领导机构,因此他们在进攻敌方的时候必须事先对进攻地点和时间进行协商,达成共识。那么在有限的时间内,要解决提案(进攻方案)的一致性且获取大部分将军的认可,才能解决拜占庭将军问题。

5、RAFT,一致性共识算法

QQ截图20200216163235

       RAFT算法包含三种角色,分别是:跟随者(follower),候选人(candidate)和领导者(leader)。集群中的一个节点在某一时刻只能是这三种状态的其中一种,这三种角色可以随着时间和条件的变化而互相转换。

      RAFT算法主要有两个过程:一个过程是领导者选举,另一个过程是日志复制,其中日志复制过程会分记录日志和提交数据两个阶段。RAFT算法支持最大的容错故障节点是(N-1)/2,其中N为集群中总的节点数量。

-只是简单地介绍了一下区块链的算法,这5种算法是最基础的当然还有很多算法。我们只要简单了解一下就行了!因为好多项目介绍会提到相关的算法。

区块链知识
上一主题: 环球币
    暂时没有人评论
0