浅看 - 共识机制
(本文借鉴各路大神总结,自己留作笔记;如有冒犯,请立即联系我,文章马上删除)
(借鉴的文章太多,链接在文章的结尾,在此一一感谢了)
共识机制:
通过特殊节点的投票,在短时间内完成对交易的验证和确认;简单理解: 共识机制就是对一笔交易,大家都同意,那这笔交易就是有效的
打个比方:共识是区块链的基础,共识机制就是区块链的灵魂
一 : POW
POW(proof Of work) 工作量证明机制
简单解释一下,就是一份证明,用着一份证明,来证明你工作过;但是不能证明你的工作过程.
工作量证明系统,是以一种应对服务攻击和其他服务滥用的经济对策;他要求发起者需要进行一定量的计算,消耗一定的时间,以及计算能力.
BitCoin(简单说或者谁简单理解)中使用的就是POW,在这就是矿工需要工作量证明,计算,计算一个很大的数,首先是打包交易,再去取一个随机数,将获取到的参数进行hash计算,得到一个hash值,这个hash值满足当前区块链的区块难度(计算出的hash值小于一个目标值),那这个hash值以及随机数.交易.就可以作为proof.
优点:
- 机制本身很复杂,有很多的细节.(对与bitcoin来说,可以主动调控区块难度,区块奖励的逐渐减半,等等,这些都是此机制带来的收益)
- 一种理想的区块链机制以及状态.这状态是极有利于单个散户加入到区块链网络中,促进区块链的发展,节点的快速增加.
- 通过这种奖励模式(挖矿),将币发送给个人.阳光普照…
缺点:
- 算力问题,耗时,消耗资源(电力,计算机cpu),从另一个方面考虑,我消耗了电力算力,确一无所获,在此指的是没有实质性的收获.
- 因为算力的问题,从简单的cpu 到 gpu,再到单纯的矿机; 从单个人的挖矿,到矿池,再到矿场,越来越集中,算力的集中就表名中心化的问题;
- 比特币每四年奖励减半的问题,当挖款的收益变低时,矿工挖矿的积极性就会变低;如果在将来想要确保矿工的收益,那只能提高手续费,但是,如果提高了手续费,使用者,交易的热情就会降低,链也就会变得冷清.
二 : POS
POS (Proof of stake) 股权证明机制
权益证明机制,这种机制当初的设计目就是补全POW的不足. 与POW要求节点不断的进行hash计算去校验hash值的机制不同,POS的原理是:要求用户自己证明自己拥有一定数量的数字货币的所有权,即"权益";
简单说一下,POS的挖矿,只有持有数字货币的用户才能进行挖矿;简单理解POS的挖矿就是用币龄兑换.打个比方,你有100 个币,一天的时间, 你的币龄就是100,两天就是 200, 如果你有1个币,1天时间,你的币龄 就是1; 现在记账一次,你的币龄就会清空为0 ,重新开始;; 也就是说,在这种情况下"富人越富",同样的,有利的方面就是,减少了作恶的可能性,如果想作恶,就必须获取到记账的权限,POS的记账权在"富人"手里,如果作恶,损失最终的还是"富人",所以也从一定程度上减少了作恶的可能性.
(我自己的理解:POS是POW的补强,而非是替代品,这两种机制从某种方面上是相互补强,目前ETH正在向着这个方向靠拢,将POW与POS相结合去应用到ETH中.)
优点:
- 节能,不需要超高算力,不需要大量的耗费电能和资源
- 去中心化,应该说,更加相对应的去中心化.
缺点
- 单纯的POS加密货币,只能通过IPO的方式发送,这就导致少数人去获取以及使用,所以在利润面前,不缺定会不会大量销售
- 信任问题,相对来说比较薄弱
三 : DPOS
DOPS(Delegated Proof of Stake):股权授权证明机制
股权授权机制,是一种基于投票选举的共识算法;简单理解,持币人进行投票进行选举出代表节点,这些节点来运营网络,这些节点进行行驶记账的权限.
在DPOS中,区块链的运行,可以说完全依靠受托人(投票选举出来的节点),并且所有的受托人全部都是等价的,他们的职责是:1.保证节点的正常运营2.收集交易3.验证交易,打包区块4.节点广播,记账
优点:
- 能耗更低,DPOS机制将节点数量降低至101个节点,这样整体的能耗会变的更低
- 明显去中心化,因为投票选举节点问题,所以个人挖矿的想法根本就无法实现,所以不可能呈现类似于bitcoin那种矿池,矿场的存在
- 快速出块,DPOS机制,节点101个,所以相比较POW来说,节点数更少,记账同步实现更快.
缺点:
- 投票者必须没天在线,换句话理解,客户端每天都需要开启处于在线状态,
- 投票的积极性不高,很多用户不知道如何投票,或者说不知道投票给谁
- 这种选举,并不能杜绝作恶节点的存在,不像POS一样,如果作恶亏岁最严重的是作恶节点
四 : PBFT
PBFT (Practical Byzantine Fault Tolerance) 实用拜占庭容错算法
所有的节点会选举出一个主节点(新的区块是由主节点生成),主机节点负责打包交易,但是不负责验证,主节点将打包好的交易分发给其他节点,验收其他节点负责验证交易,但同时,每一个备份节点会与主机节点之间存在心跳检测,如果在备份节点打包期间,主节点与备份节点之间的心跳检测断开,备份节点之间会马上重新选举一个新的主节点,重新打包交易,在此分发备用节点,备用节点验证交易完成后,将自己验证的交易的hash值广播给所有的节点,如果一个节点,验证交易通过,且广播数满足记账要求,即可完成一次记账
如果有三分之一以上的节点作恶时,会使区块链分叉,如果有三分之一以上的节点不记账时,停止工作,系统将无法继续提供服务.
优点:
- 容错机制,允许不超过三分之一的节点作恶,正是这种机制,更加适合更多的商业模式
缺点:
如果作恶节点超过三分之一,链将在无法提供服务,正因为这个缺点使PBFT更加适合联盟链
五 : POI
POI(Proof of Importantce) 重要性证明
POI就像是一个评分系统,但是,这个评分系统和POS有共同的之处是,需要一定代币基础量,系统会分配给你一个信誉数,这个数越大,你就越有记账的可能,只要记账,就有小额的代币,等于挖矿成功
但是有一个问题,就是,你评分高,不一定代表你对链的贡献或者说是维护贡献高
六 : POP
POP(Proof of Participation) 这个是将 POI与DPOS的思想结合
这个思想 还是比较有趣的. 相比于 POW的资源消耗,这个POP真的节能
借鉴大神的理解:
POW 工作量证明机制,类似于按劳分配。
POS 股权证明机制。 持有股票的人,就有对应的权利,持有的越多,权利越大 。
DPOS 授权股权证明机制。类似于董事会, 董事会成员数量有限,,由大家选举产生, 被选中的董事会成员可以行使权利。
PBFT这是一种基于消息传递的一致性算法,算法经过三个阶段 预准备(pre-prepare)、准备(prepare)和确认(commit)达成一致性,这些阶段可能因为失败而重复进行。
POI本质都是POS的变种,就一带而过了。
POP是前边所有的几种的升级。