【区块链】PoW、PoS、DPoS算法详解及对比

一、PoW机制(工作量证明机制)

1、定义:

PoW是一份确认工作端做过一定量工作的证明。

PoW系统的主要特点是计算的不对称性。工作端需要做一定难度的工作得出一个结果,但是验证方却很容易通过结果来检查工作端是不是做了相应的工作。                                                                                                                                                         

2、PoW的三个关键因素:

工作量证明函数---计算方法、

区块---输入数据、

难度值---计算量。

3、PoW的适用场景:

适用场景是比特币(看在比特币场景下它的一些使用范围)

工作量证明函数是SHA256,安全哈希算法。

难度值:比特币系统中的节点在生成区块时的重要参考指标,决定了节点大约需要经过多少次哈希才能够生成一个合法区块。

区块头的大致结构:

【区块链】PoW、PoS、DPoS算法详解及对比_第1张图片

4、PoW的执行过程:

将不同的nonce值作为输入,尝试进行SHA256哈希运算,找出满足给定数量前导0的哈希值的过程。而要求的前导0的个数越多,难度越大。

5、基于PoW的共识记账:

1)客户端产生新的交易,向全网进行广播要求对交易进行记账;

2)每一个记账节点一旦受到这个请求,将收到的交易信息纳入一个区块中;

3)每个节点都通过PoW过程,尝试在自己的区块中找到一个具有足够难度的工作量证明;

4)当某个节点找到了一个工作量证明,就向全网进行广播;

5)当且仅当包含在区块中的所有交易都是有效且之前从未存在过的,其他节点才认同该区块的有效性。

6)其他节点表示他们接受该区块,而表示接受的方法则是在跟随该区块的末尾,制造新区快延长该链条,而将被接受的区块的随机哈希值视为先与新区块的随机哈希值。

二、PoS(权益证明机制)

要求用户证明拥有某些数量的货币(即对货币的权益)。

根据每个节点所占有代币的数量和时间(即权益)来决定其挖矿的难度, 根据每个节点所占代币的比例和时间, 等比例的降低挖矿难度,从而加快找随机数的速度。

简单来说,就是一个根据你持有货币的量和时间,给你发利息的一个制度,在股权证明POS模式下,有一个名词叫币龄,每个币每天产生1币龄,比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000,这个时候,如果你发现了一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.05个币的利息(假定利息可理解为年利率5%),那么在这个案例中,利息 = 3000 * 5% / 365 = 0.41个币,这下就很有意思了,持币有利息。

【区块链】PoW、PoS、DPoS算法详解及对比_第2张图片

三、DPoS(股权授权证明机制)

DPoS类似于股份制公司,各个节点首先投票选举出可信度比较高的来作为达成共识过程中的决策者。当然,每个节点支持的票数由其持有的货币数量决定。这些可信节点可以被视为“ 挖矿池”,它们之间具有相同的权利。普通节点可以选举或驱逐不合格的“股东”。在比特股中这个股东数量被控制在100个。

【区块链】PoW、PoS、DPoS算法详解及对比_第3张图片

 

 

POW算法的优点包括完全去中心化, 节点自由进出, 算法简单, 容易实现, 节点间无需交换额外的信息即可达成共识。安全性高, 破坏系统需要投入极大的成本, 允许全网50%节点出错。POW 算法的缺点也同样多, 首先是需要大量算力,可监管性弱, 存在安全性风险, 同时超大矿池的出现, 也使得算力集中化问题凸显, 即 “51%攻击” 风险。性能效率比较低, 每次达成共识需要全网共同参与运算。无法达成最终一致性, 容易产生分叉, 需要等待多个确认。

 

相比 POW, POS 算法的优点包括, 避免了挖矿造成大量的资源浪费, 缩短了各个节点之间达成共识的时间, 网络环境好的话可实现毫秒级, 对节点性能要求低。
缺点是仍需要挖矿, 并且POS会使得 “富者更富”,有可能支配记账权, 拥有权益的参与者也未必希望参与记账。无法达成最终一致性, 容易产生分叉, 需要等待多个确认。POS依然是基于哈希运算竞争获取记账权的方式, 可监管性弱, 容错性和POW相同。
 

 

DPOS相比 POS, 它的优点是, 能大幅缩小参与验证和记账节点的数量, 可以达到秒级的共识验证。缺点是整个共识机制还是依赖于代币, 而很多商业应用是不需要代币存在的。
 

你可能感兴趣的:(区块链)