区块链从入门到精通

区块链中常用共识算法总结(持续更新)

2019-03-25  本文已影响0人  洞链

1. POW(Proof Of Work)


  1. 是一种散列函数,即相邻的x1和x2,求得的f(x1)和f(x2)差别极大。
  2. 不可逆推,给定了f(x)的值,推断不出输入值。
  3. 不存在比穷举更好的方法,可以使f(x)落在特定的范围。

实际使用过程中,每个节点需要打包的交易数据相同,再从尾部加一个随机数(节点自己选)作为整体输入来求输出值,把结果和当前的挖矿难度对比(要求输出值前x位为0),满足条件则向附近节点广播;不满足则更换随机数继续求解。最快求得解的节点,则可以视为挖矿胜出,取得其他节点的共识。

目前比特币已经吸引了全球大部分的运算能力,其他再使用PoW共识机制的区块链应用很难获得相同的计算能力来保障自身的安全,从而无法复制比特币的辉煌;同时由于挖矿造成大量的资源被浪费,共识达成的周期很长,导致了比特币的TPS(transaction per second,每秒执行事务数量)极低,只有个位数。

2. POS( Proof of Stake)


不同的旷工计算不同的数学难题,这个数学难题和你的拥有币的时间/币的多少持反比例。拥有币时间越长,难度越低。持有币数量越多,难度越低。

POS通过区块链系统内部的虚拟资产来管理安全性,根据节点持有的通证数量或者时长来决定节点享有的权利大小。区块链系统的参与者锁定他们在该区块链上持有的虚拟资产(Coin或Token),他们会签署消息以达成一致意见。只有那些已经成为系统一部分的参与者才能够决定下一个区块的内容。

PoW共识算法从经济角度,可以自然做到防止区块链分叉(区块链分叉的本质就是网络各节点对区块链的生成产生分歧,无法达成共识)。但是PoS则需要精心设计好相应的规则来防止分叉,例如PoS可以设定惩罚机制,参与挖矿的矿工被要求锁定一定数量的虚拟资产。如果他们被侦测到了存在不当的行为,则系统会没收全部或部分被锁定的虚拟资产。

3. DPOS(Delegated Proof of Stake)


4. PBFT(Practical Byzantine Fault Tolerance)


PBFT算法的核心理论是n>=3f+1
n是系统中的总节点数,f是允许出现故障的节点数。换句话说,如果这个系统允许出现f个故障,那么这个系统必须包括n个节点,才能解决故障。

参考文档


https://www.huoxing24.com/newsdetail/20190129104157764083.html
https://blog.csdn.net/yuanfangyuan_block/article/details/84593786
上一篇下一篇

猜你喜欢

热点阅读