POW共识机制解析

POW-工作量证明机制

全称是Proof of Work,比特币的诞生,使得这个共识机制得到了更多人的认识,在小编跟很多道友的接触中,明显能感到,他们更加认可这个共识,它是一个真正公平公正的共识机制。

这个共识机制的原理,其实一句话就可以解释:通过大量的计算,找到一个满意的结果,而专业的说法是:大量Hash碰撞,找到一个符合要求的hash值
这个是pow算法的基本实现代码:https://github.com/bitxx/blockchain-demo/tree/master/src/github.com/jason/blockchain-demo/pow

比特币的共识

小编认为,很有必要大致了解一下比特币的pow是如何实现的。
里面主要是三个概念:difficultyTargetNonce

difficulty

也就是难度值,这个值保证了不管全网算力有多大,都能在10分钟左右生成一个块。这个值是在每个完整节点中独立自动发生的,每2016个区块,所有节点都会按统一的公式自动调整难度,这个公式是由最新2016个区块的花费时长与期望时长(期望时长为20160分钟即两周,是按每10分钟一个区块的产生速率计算出的总时长)比较得出的,根据实际时长与期望时长的比值,进行相应调整(或变难或变易)。
公式如下:新难度值 = 旧难度值 * ( 过去2016个区块花费时长 / 20160 分钟 )

Target

即目标值。大量的计算是要有目标的,这个公式比特币是这样给出的:
目标值 = 最大目标值 / difficulty 其中最大目标值为一个恒定值:0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
目标值的大小与难度值成反比。比特币工作量证明的达成就是矿工计算出来的区块哈希值必须小于目标值。

Nonce

Nonce值是用来参与hash运算的,它存在于区块头中,通过不停的变换这个值,寻找一个满足条件的哈希值,也就是前导0个数在一定范围内的hash值,前导0越多,难度越大。

总结

求出满足要求的hash值后,全网广播,其余节点验证该值是否符合要求,若符合,则成功加入主链。

优点和不足

这个通过上面分析已经很清楚了,优点:参与人可以公平竞争;不足:资源消耗巨大,效率低(比特币tps=6)。

参考自:http://liyuechun.org/

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2017-2023 Jason
  • Visitors: | Views:

谢谢打赏~

微信