区块链共识算法的理解

关于CAP理论:
C(Consistency)一致性:分布式系统的所有(节点)数据备份,同一时刻是否保持同样的值。
A(Availability)可用性:分布式系统的一部分节点故障后,其他节点是否还能正确响应客户端的请求。
P(Partition)分区容忍性:如果集群中的机器被分成了两部分,这两部分不能互相通信,系统是否能继续正常工作
既然是分布式系统,那么分区容忍性是不可避免的。也就是说我们不能百分百保证两台服务器节点之间不会因为网络等原因导致通信中断。假设分布式系统A、B,对应的数据为DBA、DBB,如果A、B之间出现分区(网络中断),这时候首先需要满足分区容忍性。在满足分区容忍性的情况下,如果A、B分别接受客户端的请求,由于AB连接中断,这时候就必须在数据一致性和可用性之间做出选择,要么阻塞等待AB重新连接,保证数据一致性(CP)。要么抛开一致性,保证AB能正常响应请求(AP)。
理解了CAP理论,我们再来了解下常用的一致性算法:
1、Paxos 算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。Paxos是分布式一致性算法,如果不能达成一致,则用户的请求不能正常响应,这种算法多适用对一致性敏感性较高的应用,如银卡柜台取款机,车票系统等。
2、Raft算法,Raft算法包括三种角色:Leader(领导者)、Candidate(候选领导者)和Follower(跟随者),决策前通过选举一个全局的leader来简化后续的决策过程。Raft算法面向对多个决策达成一致的问题,分解了Leader选举、日志复制和安全方面的考虑,并通过约束减少了不确定性的状态空间。Raft是对Paxos的重新设计和实现,重点解决一致性问题。
区块链中的共识算法:
1、Pow工作量证明:工作量证明最初提出是为了防止垃圾邮件,后来由中本聪在比特币区块链设计共识机制中引入。工作量证明是通过解决是一个不容易解答但是容易验证的问题来争取记账权以达到共识目的。
2、Pos权益证明:权益证明是让网络中拥有越多权益的节点有机会做更多的决定,这种机制的假设前提是权益持有人更倾向于维护网络利益且担心作恶后遭受惩罚。权益证明的实现方式很多,比较典型的是引入“币龄”概念的方式,即用币龄来计算权益。
3、DPos股份授权证明:股份授权证明是基于权益证明发展而来的。股份授权证明能够让每个节点首先通过权益选举出n个记账节点,类似于公司中的董事会制度,后续提案由这些被选中的节点轮流处理。股份授权证明理论上不要求选出的代表个体本身是权益所有人,看起来更民主、更开放。如果选出的代表不作为(轮到自己记账时不记账),或者作恶,可以把他们踢掉,如有必要则进行惩罚(选民们也有可能被惩罚)。股份授权证明机制大大提高了效率,但是减少了记账节点的规模,属于弱中心化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章