1. 途棱财经首页
  2. 区块链新闻

区块链常见共识算法

共识和一致性
共识(consensus)和一致性(consistency)很多时候会在一起讨论,但是两者意义并不完全相同。

一致性:对于分布式系统中的多个服务节点,给定一系列操作,在约定的协议保障下,试图使得他们对处理结果达成“某种程度”的一致意见, 一致性往往指分布式系统中多个副本对外呈现的数据的状态。一致性分为强一致性(顺序一致性、线性一致性)和最终一致性等。

共识:共识描述了分布式系统中多个节点之间,彼此对某个状态达成一致结果的过程。

一致性描述的是结果状态,共识则是一种手段,通过共识算法来实现一致性,共识算法解决的是对某个问题(事件顺序、Leader节点选举、某个值的最终结果等)达成一致性意见的过程。

共识算法
一般地,把出现故障( crash 或 fail-stop ,即不响应)但不会伪造信息的情况称为“非拜 占庭错误”( non-byzantine fault )或“故障错误”( Crash Fault );伪造信息恶意响应的情况称 为“拜占庭错误”( Byzantine Fault ),对应节点为拜占庭节点 。

根据解决的是非拜占庭错误还是拜占庭错误情况,共识算法可以分为Crash Fault Tolerance(CFT)类算法和Byzantine Fault Tolerance(BFT)类算法。

非拜占庭错误:已经存在一些经典的解决算法,包括 Paxos 、 Raft 及其变种等。这类容错算法往往性能比较好,处理较快,容忍不超过一半的故障节点 。

拜占庭错误:一般包括 PBFT (Practical Byzantine Fault Tolerance ) 为代表的确定性系列算法、 PoW 为代表的概率算法等 。对于确定性算法, 一旦达成对某个 结果的共识就不可逆转,即共识是最终结果;而对于概率类算法,共识结果则是临时的,随 着时间推移或某种强化,共识结果被推翻的概率越来越小,成为事实上的最终结果 。拜占庭类容错算法往往性能较差,容忍不超过 1/3 的故障节点 。

区块链网络中常见的共识算法有POW(比特币以太坊)、POS(PPC电子货币)、DPOS(EOS)等。
常见共识算法关注点如下:
选择出块节点(一致性检查节点):POW 和POS。
接受到数据块时如何验证:POS和DPOS。
节点之间的数据以什么方式传播:DAG和链式结构(异步/同步通讯)。
共识(确保一条交易被大多数节点接受):PBFT(实用拜占庭容错)、Paxos(故障容错)、Raft(故障容错)等,Hyperledger Fabric使用集中的kafka或Raft实现的CFT。

工作量证明 POW
工作量证明( PoW )通过计算来猜测一个数值( nonce ),使得拼凑上交易数据后内容的Hash值满足规定的上限(来源于 hashcash)。由于Hash难题在目前计算模型下需要大量的计算,这就保证在一段时间内系统中只能出现少数合法提案。反过来,能够提出合法提案, 也证明提案者确实付出了一定的工作量。

同时,这些少量的合法提案会在网络中进行广播,收到的用户进行验证后,会在用户认为的最长链基础上继续难题的计算。因此,系统中可能出现链的分叉( fork ),但最终会有一条链成为最长的链。

Hash 问题具有不可逆的特点,因此,目前除了暴力计算外,还没有有效的算法进行解。反之,如果获得符合要求的nonce,则说明在概率上付出了对应的算力。谁的算力多, 谁最先解决问题的概率就越大。当掌握超过全网一半的算力时,从概率上就能控制网络中链的走向。这也是所谓 51% 攻击的由来。参与 PoW 计算比赛的人,将付出不小的经济成本(硬件、电力、维护等)。当没有最终成为首个算出合法nonce值的“幸运儿”时,这些成本都将被沉没掉。这也保障了如果有人尝试恶意破坏,需要付出大量的经济成本。也有设计试图将后算出结果者的算力按照一定比例折合进下一轮比赛的考虑。

权益证明POS
权益证明(Proofof Stake, PoS)最早在 2013 年被提出,并在Peercoin系统中实现,类似于现实生活中的股东机制,拥有股份越多的人越容易获取记账权(同时越倾向于维护网络的正常工作)。

典型的过程是通过保证金(代币、资产、名声等具备价值属性的物品即可)来对赌一个合法的块成为新的区块,收益为抵押资本的利息和交易服务费。提供证明的保证金(例如通过转账货币记录)越多,则获得记账权的概率就越大。合法记账者可以获得收益。PoS 试图解决在Pow中大量资源被浪费的缺点,受到了广泛关注。恶意参与者将存在保证金被罚没的风险,即损失经济利益。一般情况下,对于 PoS 来说,需要掌握超过全网 1/3 的资源,才有可能左右最终的结果。这也很容易理解:三个人投票,前两人分别支持一方,这时第三方的投票将决定最终结果。PoS 也有一些改进的算法 ,包括授权股权证明机制( DPoS ),即股东们投票选出一个董事会,董事会成员才有权进行代理记账。

股份授权证明 DPOS
DPOS(Delegated Proof of Stake)是一种基于投票选举的共识算法,有点像民主大会,持币人选出几个代表节点来运营网络,用专业运行的网络服务器来保证区块链网络的安全和性能。DPOS机制中,不需要算力解决数学难题,而是由持币者选出谁是生产者,如果生产者不称职,就有随时有可能被投票出局,这也就解决了POS的性能问题。

在DPoS共识算法中,区块链的正常运转依赖于受托人(Delegates),这些受托人是完全等价的。受托人的职责主要有:
1.保证节点的正常运行;
2. 收集网络里的交易;
3.节点验证交易,把交易打包到区块;
4.节点广播区块,其他节点验证后把区块添加到自己的数据库;
5.带领并促进区块链项目的发展;

受托人的节点服务器相当于比特币网络里的矿机,在完成本职工作的同时可以领取区块奖励和交易的手续费。一个区块链项目的受托人个数由项目发起方决定,任何一个持币用户都可以参与到投票和竞选受托人这两个过程中。投票选择出来的委托人负责打包区块、维持系统的运转并获得相应的奖励。

DPOS与POS原理相同,主要区别在于节点选举若干代理人,由代理人验证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。

在DPOS机制下,算法要求系统做三件事:
第一,随机指定生产者出场顺序;
第二,不按顺序生产的区块无效;
第三,每过一个周期洗牌一次,打乱原有顺序。

其他算法

途棱财经提供关于区块链是什么,区块链技术开发区块链应用等信息,所有信息均来自网络,不代表网站意见。特别提示,需防范以“虚拟货币”“区块链”名义进行非法集资。

文章来自于网络,不代表网站任何观点,比特币属于超高风险资产,请谨慎对待,本站均不承担任何责任。您应在使用过程中遵守当地法律,由此产生的一切法律后果,均由您本人承担,一旦您使用本站,即表明您认可本站声明。如若转载,请注明出处:https://www.blockreally.com/188.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

QR code