区块链共识算法
什么是“共识”
由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识。这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。
区块链去中心化的特性决定了:没有一个中心化组织确认每一笔交易的正确与否、可否进行。
所谓“共识”,是各个节点在短时间内对交易的验证和确认。
主要的共识算法
1.Pow工作量证明
工作量证明也就是常说的挖矿,通过运算计算出满足规则的随机数(nonce),即可获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储。
工作量证明要求节点参与者执行计算密集型的任务,但对于其它网络参与者来说易于验证。
优点:
- 完全去中心化,节点自由进出
缺点:
- 目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全;
- 挖矿造成大量的资源浪费;
- 共识达成的周期较长,不适合商业应用
2.Pos权益证明
Pow的一种升级共识机制;根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。在所有的实施方案中,权益证明要求所有的参与者抵押一部分他们所拥有的token来验证交易。不同于通过完成复杂计算问题来验证交易,验证者需要通过锁定token来完成交易验证。
通过锁定代币,如果验证者存在欺诈性交易,那么他们所抵押的token也会被削减。与工作量证明一样,权益证明的细节比这里呈现的要丰富得多。
优点:
- 在一定程度上缩短了共识达成的时间
缺点:
- 还是需要挖矿,本质上没有解决商业应用的痛点
3.DPos股份授权证明机制
在委托权益证明中,不同于权益证明的抵押token来验证交易,而是通过token的持有者投票产生一组交易验证者(超级节点)。
委托权益证明既是去中心化的,因为网络中的所有参与者都能参与投票选取节点来验证交易,但也是中心化的,因为只有一组交易验证者,这样的好处就是提高交易和验证的速度。
优点:
- 大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证
缺点:
- 整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的
4.Pool验证池
基于传统的分布式一致性技术,加上数据验证机制;是目前行业链大范围在使用的共识机制
优点:
- 不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证;
缺点:
- 去中心化程度不如bictoin,更适合多方参与的多中心商业模式
5.Dft拜占庭容错机制
拜占庭容错机制本质上是一个高度技术性的算法(像其他共识算法一样)。一般来说,加密货币项目所采用的拜占庭容错机制是通过允许将军(节点)分别管理一条链,并在彼此之间共享消息用来确保正确的交易记录和每个节点的诚实性。
优点:
- 信任节点由社区共识产生,可扩展性以及低廉的转账费用。
缺点:
- 部分中心化
以上是对区块链世界中使用的一些共识算法的非常快速的概述。总的来说,我们可以区分三种类型的共识:标准工作证明共识;基于投票许可的共识;基于彩票许可的共识。在区块链实现中选择哪种共识取决于网络类型和处理的数据。
彩票类型更适合大型网络;投票类型更适合较小的网络,并将延迟降至最低。
参考:
https://baijiahao.baidu.com/s?id=1616375871982422956&wfr=spider&for=pc
https://baijiahao.baidu.com/s?id=1611687187235044523&wfr=spider&for=pc