目前主流的共识机制

区块链其实就是分布式账本,怎么让大家去相信这个分布式账本呢?所有大家需要约定一个共识机制,通过共识机制出来的账本大家都认为可靠可信的。目前在区块链中,主流的共识机制有Pow、Pos、DPos、PBFT等,接下来为大家一一介绍这些共识机制。

Pow工作量证明
工作量证明的本质就是谁做的工作多,谁就更有机会来获取额外的奖励。对于BTC和ETH,Pow就是不停的寻找一个随机数并计算哈希值,只有当计算出来的哈希值小于难度值时,才认为该区块有效。就如同解一个数学难题,通过不断尝试的方式去解答,谁尝试的次数多谁能接触的概率就越大。原理等同到计算器,就要求电脑的性能非常高。性能越高,算了越强。
优点:通过暴力计算账本无法更改,可信度极高;
缺点:费电,电脑消耗大,资料浪费。
也正是这一点,许多公链都不采用Pow算法。如eth的家园版本,随着时间的推移每出10W个区块,其难度值将会呈指数增长,终将形成矿工挖矿的收入不能填补电费的消耗和硬件的损失,到时候矿工无利可图将不会挖矿,会造成以太坊网络堵塞。所以后续以太坊的版本将不再沿用Pow,采用Pos共识机制。

Pos股权证明
股权证明是谁持有的币龄时间越长(币龄 = 持有币的个数 * 持有币的时间),谁就更有机率获取区块的记账权。其计算公式如下:

  hash(block_header) =<target * coinage
  币龄的计算:coinage = 币的个数*币的时间

这就类似如股权公司,谁拥有的股份越多谁就越有话语权。如果想要造价,就必须拥有全网51%的代币或者币龄,这个是相当困难的,并且已拥有全网51%的财富再去制造假账必然自己也会遭受损失。如果当前的节点获得了区块记账权,当前的币龄被清空并获取相关的回报。
优点:缩短了共识达成的时间,不再需要大量消耗能源挖矿;
缺点:所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响;

DPos委托权益证明
委托权益证明是让每一个持有比特股的人进行投票,由此产生101位代表 , 我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。从某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。
优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
缺点:需要才有代币的人参入投票,但实际上持币人没有精力去选取节点,缺乏激励机制。

PBFT拜占庭容错
基于拜占庭将军问题,PBFT算法一致性的确保主要分为这三个阶段:预准备(pre-prepare)、准备(prepare)和确认(commit)。流程如下图所示:
在这里插入图片描述
我们首先解释一下上面各个符号表达的意思:

C表示客户端;
0,1,2,3表示4个节点;
0在这里为主节点,1,2,3为从节点;(注意,这里其他节点也可以作为主节点,若0发生错误只能由服务器监测。如果服务器在一段时间内不能完成客户端的请求,则会触发视图更换协议,将其他节点换为主节点)
3为故障节点;

下面我们结合上图,详细说一下PBFT的步骤:
Request:请求端C发送请求到主节点,这里是0节点;
Pre-Prepare:节点0收到C的请求后进行广播,扩散至1,2,3;
Prepare:1,2,3节点收到后记录并再次广播,1->023,2->013,3因为宕机无法广播;(这一步是为了防止主节点给不同从节点发送不同的请求)
Commit:0123节点在Prepare阶段,若收到超过一定数量(2F,实际使用中,F为可以容忍的拜占庭节点个数)的相同请求,则进入Commit阶段,广播Commit请求;
Reply:0123节点在Commit阶段,若其中有一个收到超过一定数量(2F+1)的相同请求,则对C进行反馈;
根据上述流程,在 N ≥ 3F + 1 的情況下一致性是可能解決,N为总计算机数,F为有问题的计算机总数。
优点:无须发现代币,快速实现共识记账
缺点:所有节点必须是高度信任的网络节点

由于区块链技术的快速发展,共识机制也越来越多,如PoA权威证明,PoWeight权重证明,PoR声誉证明,PoET所用时间证明等。大家可以针对不同的应用环境下,选取最适合项目环境的共识算法。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值