码迷,mamicode.com
首页 > 其他好文 > 详细

初识区块链(三)

时间:2018-10-05 21:10:10      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:函数   比特   快速   变化   时间   bubuko   也会   学习记录   roo   

工作量证明(proof of work)

  区块链的一个关键是,为了保证安全稳定,要给它加一个门槛:即参与者想创建区块并加入区块链,必须证明自己完成了非常困难的工作,这就是"工作量证明",简称POW。可以理解为POW用于保持区块链的节奏。

  工作的困难度通过计算量来体现,它不能被快速完成,而且困难度随时间增长而加大。中本聪在比特币中设定每10分钟出一个新块(动态设置难度值)。而哈希计算(hash)的特点,就满足这种要求。

  此外,完成这个工作的人,也会获得相应奖励。如”矿工“通过”挖矿“,生产区块,获得比特币奖励。算力高、速度快者优先。

 

  哈希计算:指获得指定数据的哈希值的过程。它的特点是:指定数据的哈希值是唯一的,且原始数据有任何变化,其哈希值都会改变。

  比特币中使用的POW算法是 Hashcash ,它最初用来防止垃圾邮件。计算哈希的数据由两部分组成,一个是区块数据(如前一区块的hash、时间戳、交易信息、难度值等),另一个是计算器nonce。使用哈希函数(如SHA256)计算hash值,如果不符合难度要求,则nonce+1 ,再次计算直到满足要求。

  难度值 :一般用targetBits定义,意思是二进制的hash值前面有多少bit为0,暂且称为目标上界,如果计算得到的hash值比目标上界小,则表示符合有效证明。因为比目标上界小的值毕竟是少数,所以需要反复改变nonce来计算hash。如下图所示,第二行的hash为目标上界,第一行不符合要求,第三行则符合要求。

  技术分享图片

 

 

文章内容仅为区块链技术的学习记录,如有失误或考证不严谨的地方,请多多指教。

参考资料:

  https://jeiwan.cc/

  https://liuchengxu.gitbook.io/blockchain/

 

初识区块链(三)

标签:函数   比特   快速   变化   时间   bubuko   也会   学习记录   roo   

原文地址:https://www.cnblogs.com/ChengzhiYang/p/9745208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!