广告 X
OK欧意app

欧意最新版本

欧意最新版本app是一款安全、稳定、可靠的数字货币交易平台。

APP下载  官网地址

根据了解,小编觉得还是有很多人对于去中心化的理解是模糊的,也不了解区块链里所讲的去中心化到底是什么意思?下面本站小编就来给大家详解区块链共识算法实现去中心化的演化路径。

从计算机系统角度来看,区块链技术是一种全新的分布式系统,但区块链与传统分布式系统最根本的区别就在于其去中心化(Decentralization)特性。所谓去中心化,是指没有一个中央控制方能够控制区块链网络的运行,既不能停止它,也不能操纵其中的数据。去中心化特性为区块链带来三个好处:容错性、抗攻击力和防合谋,从而使得区块链成为一种独立的、可信的、抗垄断的技术体系,为在其之上存储和转移价值和信任提供了技术保障。

为实现这种去中心化特性,区块链引入了共识算法,在无须信任的各参与方之间建立了进行可信计算的基础。所谓共识算法,实际上是一种协议,当各参与方均按照协议进行计算时,可保证各方所进行的计算结果是一致的,如果有(少数)人不遵守协议提供错误的计算结果(拜占庭节点),其计算结果会被其他人拒绝,只有多数人达成一致的计算结果才会被记录进区块链账本之中。值得一提的是,参与者是否遵守协议完全由其自己决定,并不受外力的强制。

最早的区块链共识算法是比特币所采用的工作量证明(Proof of Work, PoW)算法,通过反复进行无法预测结果的哈希计算(俗称“挖矿”)来达到随机选择区块创建者的目的。工作量证明算法简单、安全、可靠,对节点数量没有限制,除51%攻击外几乎没有漏洞,像比特币这样容纳了巨额财富的区块链网络需要它所提供的最高安全级别保护。但由于挖矿需要消耗巨大的电能,因此工作量证明算法不适用于低价值系统。

另一种常见的共识算法是拜占庭容错算法(BFT),在恶意参与者不超过1/3的情况下可以提供高效、确定性的共识结果,主要缺点有两个,一是当参与者数量较多时性能会非常快地下降,从而实际上不可用,二是无法防范分身攻击,需要明确参与者的身份,防止一个人(机构)部署多个节点。因此BFT共识算法主要用于小规模的联盟链,不适用于公链。

为解决上述问题,出现了权益证明(Proof of Stake, PoS)共识算法。将工作量证明中的哈希计算改为质押数字货币(即权益),既解决了工作量证明算法消耗大量算力的缺陷,又解决了BFT算法的分身攻击问题。权益证明用币价下跌的威胁捆绑了参与者的切身利益,起到了与工作量证明机制类似的作用。但权益证明也面临着3大问题:一是“无利害关系”(Nothing-at-stake attack)问题,攻击者可以只抵押一次权益但同时在所有分叉上出块;二是“远程攻击”(LongRange Attacks)问题,攻击者可以从任意长度的距离建立一个分叉而不用担心被权益被削减;三是“马太效应”问题,也即财富会愈来愈集中。针对这些问题目前有几种改进的手段:

• 1、 DPoS(BitShare, Steem, EOS)

• 以EOS的DPoS算法为例,首先所有用户通过PoS算法投票选出21个超级节点,再在超级节点之间用BFT算法生成区块。这样结合PoS和BFT算法的有点,就避免了传统PoS算法的“无利害关系”和“远程攻击”问题,但却带来了另一个致命的问题:由于超级节点的运营者及其密切支持者往往占有了大量的EOS币,很难被普通用户投票选下去,从而加剧EOS的中心化倾向,与区块链的去中心化本质相抵触。因此,DPoS算法只是个折中方案,不是好的共识算法。

• 2、 Casper(以太坊)

• 以太坊推出的Casper共识算法则另辟蹊径,引入了惩罚机制,将未遵守共识算法、在多个分叉上出块的节点所质押的以太币处全部或部分没收,从而解决无利害关系问题。与此同时,通过结合工作量证明算法、定期更新区块的终结状态,又解决了远程攻击问题。这是一个非常精妙的构思,但是否能真正实现还有待观察。

• 3、 基于VRF的PoS算法(Algorand, Dfinity,Ouroborous)

• 这类共识算法思路与DPoS类似,但出块节点不是由用户投票选出来,而是通过VRF(Verifiable Random Function,可验证随机函数)算法从所有节点中随机抽取若干个节点,然后用BFT算法生成区块。VRF可以保证无法预测谁下一轮会被抽中,这样就无法作弊。这类算法由于其复杂性,尚处于实验阶段,而且有一个通病就是VRF在网络拥堵情况下无法工作,因此应用于公链目前还有难度。

• 4、DSC(Penta)

• 上述三类PoS算法都无法解决“马太效应”问题。Penta(PNT)提出的DSC(Dynamic Stake Consensus)共识算法吸收了各种PoS算法的优点,并创造性地提出了超级议员的概念模式,即将参与记账的节点分为议员和观察员两类,议员需要质押大量的代币才能获得资格,而观察员则只需质押少量代币即可。观察员的数量远远大于议员的数量,议员和观察员均由用户通过PoS算法投票选出。系统定时通过散列抽签算法(RSA)挑选议员和观察员组成若干共识组,每个共识组都由少数议员和多数观察员组成。每个共识组进行BFT共识,生成各自的候选区块,最后再通过散列抽签算法从候选区块中随机选取正式区块。