首页
学习
活动
专区
工具
TVP
发布

解密比特币与区块链基础技术原理(五)-挖矿到底是在干啥

之前介绍了比特币使用分布式存储的区块链作为记账系统,也解决了大家关于如何声明比特币的拥有权,以及把比特币支付给其他人的过程。现在我们遇到了新的问题,既然区块链是分布式的记账系统,每个参与的节点都有一份拷贝,那么谁来负责把一笔交易记到区块链呢?

这不得不引入一个新的概念,就是共识机制,比特币是通过工作量证明的共识机制来决定记账权的,通俗来讲,谁证明了自己的工作量最大,谁就负责记账。

工作量证明示意图如下:

工作量大小是通过计算符合某一个标准的比特币区块头的哈希散列值来体现的。试图争夺记账权的节点称为挖矿节点,挖矿节点会把网络节点上发来的交易进行验证(网络传播机制会在下一节中介绍),验证后会存入缓冲区,形成一定的交易存储结构(交易使用Merkle树存储,后续问斩各种介绍),放在区块体中,然后根据区块的基本信息构造区块头,区块头通常包含前一个区块的哈希散列值、Merkle根(后续文章会详细介绍)、时间戳、难度目标、以及一个填充的随机值。这里面的随机值是随机产生并且填充的,挖矿过程就是求出一个能够填充本区块头的随机值,让区块头的哈希散列值符合某一个标准,例如:哈希散列值的前某些位为0,难度目标就是用来表达哈希散列值标准的难度系数,可以通过概率算法计算出难度值与挖矿成功的可能性。

网络上的每一个矿机接收并验证了一批交易,然后就开始进行挖矿,视图计算满足某一难度值的区块头的哈希散列值,如果计算成功,则挖矿成功,向全网广播挖矿所得,全网节点验证后,把这个区块连接到区块的最上端,并且在全网达成一致。矿机需要反复的试验随机填充值来进行求解,一般采用产生随机数,尝试把产生的随机数填充到区块头,然后计算哈希,后续文章会介绍矿机联盟,矿机联盟会把随机数分成多个小区间,分配给联盟中的成员,共同求解。

除了上面介绍的工作量证明机制,还有权益证明、股份制的权益证明共识机制等,后续我会在共识机制的专题文章中与大家分享。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180226G03GYR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券