区块链的共识算法是什么共有哪些类型
扫描二维码
随时随地手机看文章
谈起区块链里的热门词,一定离不开伟大的共识算法,它是构筑区块链信任特性的基础。到底有哪些共识算法?今天来了解一下:
共识算法是什么?
共识机制就是用来解决分布式系统的一致性问题,其核心为在某个协议(共识算法)保障下,在有限的时间内,使得指定操作在分布式网络中是一致的、被承认的、不可篡改的。在区块链系统中,特定的共识算法用于解决去中心化多方互信的问题。
其实简单理解就是达成一致。现实生活中很多场景是需要达成一致的。区块链系统中,每个节点必须让自己的账本和其他节点的账本保持一致。而中心化世界里,这几乎不可能,因为有一个中心服务器存在。
共识算法有几类?
在区块链系统中,共识算法则通过经济利益的博弈,来鼓励对系统的贡献及提高不可信节点的作恶成本。常用算法如PoW、PoS、DPoS等,不同的算法,其实就是不同的游戏玩法。
基于挖矿方式分类:
PoW(Proof of Work,工作量证明)—主要代表:比特币所谓的比特币挖矿就是通过计算符合某一个比特币区块头的哈希散列值争夺记账权。这个过程需要通过大量的计算实现,简单理解就是你进行的计算量大(工作量大),你就有大概率获得记账权。包括:Bitcoin,Ethereum,Litecoin,Zcash。优点:随机性、公平性好;缺点:耗能。
PoS(Proof of Stake,权益证明)—主要代表:点点币简单理解就是根据资产的多寡分配获取记账权的概率,类似股份公司中的股东。包括:Ethereum-PoS,Tendermint,Algorand,EOS DPoS,DFINITY,VBFT。优点:攻击更昂贵,性能效率高;缺点:权利集中。
DPoS(Delegate Proof of Stake,委托权益证明)—主要代表:EOSPoS的改进,通过社区选举产生记账者,类似股份公司中的董事会。如:Steemit, EOS, bitshare优点:廉价的交易,可伸缩的;缺点:目前部分集中。
为适应不同的应用场景,区块链共识机制的研究集中于优化系统的可扩展性、运行效率、容错性等方面。在新兴的区块链方案中,会将各种共识机制结合使用,例如在分层/分片方案中,最上层的主链使用PoW机制以确保全局共识的有效性并用来对抗女巫攻击,而在相对小范围的分片中,使用PoS或者BFT算法来实现更高效率的共识。典型的案例包括未来引入基于校验器管理和约分片方案的以太坊以及Zilliqa等。尽管这些方案尚未落地验证,但他们代表了未来区块链设计的趋势。
实际上,共识算法还有很多种,如用于解决可信节点间的网络通信故障问题,常用算法包括Paxos、Raft、ZAB等,常见于大数据分布式系统,这些算法不具备对不可信节点的容错性。这类算法也包括用于解决拜占庭将军问题的拜占庭容错算法(BFT)等,该算法允许有一定比例的不可信节点。
共识算法发展历程:
从历史上看,共识算法起源于多处理器计算的研究;它们解决的是处理器可能出现故障(即变得无响应)时的全局状态问题。在这些情况下通信是同步的,即受一些已知的时间上限。
后来,随着电信和计算机网络的发展,出现了另外两个问题:未知的通信延迟和对手的存在。前者导致了部分新的研究同步和异步共识算法和创建算法可以容忍任意代理行为(拜占庭行为)——即所谓的拜占庭容错算法(或BFT共识)。
随着互联网的广泛应用,对手的问题变得更加严重。如果在多处理器环境或电信基础设施中可以识别每个代理,那么在Internet的许多情况下就不能这样做。因此,出现了一种新的公共(或无许可)共识,共识算法必须成为一种协议,其中嵌入了识别和排除拜占庭式代理的规则和程序——就像一些附带机制降低了此类代理进一步参与协议的经济能力一样。这种制度以POW 和POS的名义引起了公众的注意。我们将以经济激励(BFT- ei)命名这些协议。在许多情况下,异步性和无许可性要求牺牲其他共识品质,比如决定论或适用于领导人选举场景的能力。
共识算法应用:
通常,共识算法用于解决以下问题:
· 领袖选举(在所有共识参与者中选择代理人,有权更新系统的全球状态)
· 原子交换(不能根据事件的内部属性确定其顺序事件的确切顺序)
· 状态复制(维护所有或大多数代理共享的全局状态)
这是共识算法的三个主要用例是高度相关的。例如,状态复制可以通过状态更改的适当顺序(即原子广播)来解决,而适当的领导人选举过程本身可能允许有序的原子广播(但是,在没有领导人选举过程的情况下,有达成相同结果的共识)。
总体来说,主流共识算法逐渐由PoW转向PoS共识算法,出现POW和POS混合的趋势,POW的公平性和POS的效率得到融合补充。但即便是每种加密货币背后都有一种伟大的共识算法,没有一种共识算法是完美的,各有优缺点。随着区块链项目越来越多,而共识算法也会不断改进。