PoW共识机制的理解

PoW工作量证明(Proof of Work),其概念在比特币出现之前已经有了,比特币的设计区块链的共识机制就参考了POW工作量证明。在比特币中,HASH运算的复杂度进行CPU运算实现工作量确定。

那区块链的PoW共识机制是怎么工作的呢?

我在网上看到了一个很有趣的例子,使用类比的手法来描述区块链PoW共识机制的工作方法。
工作量证明,目的就是要证明工作者确实有花时间完成工作,所以需要验证工作时间。而如果采用单独计时的话,将时间数据与工作成果发给验方,验收方是无法确定时间数据是真是假的。一个好的方法是验收方给工作方发一个难题,工作方要解开此题需要结合自己当前的工作状况(时间等),并且需要一定的时间。这样子验收方在验收的时候,只要确认工作方解开了此题,就说明工作状况没问题,花的时间也足够长。

网上的例子使用了垃圾邮件处理的例子,识别垃圾邮件(发送者用机器多次并自动转发),通过识别其信息编辑的时间来识别,时间太短(工作量不够),说明是机器自动发的垃圾邮件。

因此,验收发需要发送方在发送的邮件里包含一个签名,包括发送时的时间戳,发送地址,字数等(当前的工作状况), 还有一个数字counter,验收方将签名里的数据进行SHA-1散列,得到的160bit数如果前20位是0,则通过,否则不通过。

这就要求邮件发送者在发送之前需要不断的生成counter,使得SHA-1散列散列出来的数字前20位为0,而这个穷举是需要时间的,因而可以证明发送着确实是花费了一定的时间写邮件,不是机器自动发送。

挖矿过程的PoW与之类似,在挖矿过程中把所有交易打包生成Merkle树, 对Merkle根进行哈希运算,得到哈希值, 然后组装区块头;
对区块头不断进行SHA256运算,判断结果是否小于网络目标值(这与前面判断前20位是否都为0是类似的,只是概率区别,花费的时间不一样)。 如果大于这个目标值,则验证不过,需要改变随机数值,组成新的区块头,继续哈希。如果合乎条件,就是挖到矿了,验证只需要依次验证运算就可以了。这就是区块链的PoW共识机制,这也是为什么挖矿的效率与计算机的算力成正比,算力越高,重复尝试就越快,挖矿的效率也就越高。

PoW的优点:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值