首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

比特币居然是这样挖出来的!高能预警,全程烧脑

传统的挖矿比如黄金,需要准备铁锹、钻机、灯、矿车等一系列设备,才能开始工作。

比特币生产被称为挖矿,是因为生产过程很像挖黄金。挖比特币也需要准备一系列的工作,比如先构建一个区块头。

区块头

旷工在填写好这些信息后,会生出一个区块头,但是该区块头暂时不被比特币系统认可。

需要找到本区块的哈希值,然后广播给全网,获得全网认可后,把该区块链接到当前的区块链上,形成一个+1区块链,不断重复此过程就叫挖矿。

说简单点,任何旷工都可以填写该信息,此时每个旷工填写的区块都是“假区块”,一旦有某个旷工找到了该区块的哈希值,它的“假区块”就变成了真区块,被比特币系统认可,然后获得比特币奖励。

所以,挖矿的本质是找到本区块的哈希值,找到该哈希值的旷工会获得比特币奖励。

如何找到该区块的哈希值呢?

你猜,你猜,你猜猜猜。

其实找哈希值的过程真是靠猜。那如何猜呢?

找到区块头里Nonce的哈希值,小于难度目标的哈希值。难度目标是固定的,我们要猜的就是这个随机数Nonce,区块的哈希值就是Nonce哈希运算后得出的哈希值。

我们以277316的区块举例,难度目标为0x1745fb53,哈希计算后的哈希值为:

0x0000000000000003A30C00000000000000000000000000000000000000000000

*如何哈希计算?可以查看《精通比特币》8.7.2难度表示

我们要找到一个小于目标哈希值A的哈希值B,通过把Nonce套进公式,会得到一个哈希值B,拿该哈希值和目标哈希值A比较,小于A,那就寻找成功。

为方便理解,我把与Nonce有关的公式做了修改。你也可以查找精通比特币,8.7.1工作量证明算法,查看原公式。

公式如下:

听风很帅=》1ce654cf64656ba43247

听风很帅(1)=》512198e52aa12427531

听风很帅(2)=》101654c68d5321c9647

听风很帅(3)=》0cb82dq9846fa6c48647

听风很帅(4)=》0465464ce20cc21e7541

听风很帅(5)=》14edc1cad25121e25487

()里的数就是Nonce,公式右边是哈希值,通过不断地Nonce+1的方式套进公式,让左边哈希运算,得出右边的哈希值。

然后拿该哈希值与目标哈希值0x0000000000000003A30C00000000000000000000000000000000000000000000比较。如果运算出的哈希值小于该值,就找到了正确的Nonce。

平时我们的理解是A+1

不断拿Nonce去套的过程,也叫哈希碰撞,就是试图找到一个符合条件的Nonce。

最终套到924591752时,得出哈希值

0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4

拿它与目标值比较

0000000000000003A30C00000000000000000000000000000000000000000000

左边0数量一样,1比3小,证明是我们要找的Nonce

然后旷工把924591752填入Nonce,再把区块接入区块链中,接着广播给其他节点验证是否小于目标值,其他节点验证验通过,把该区块加入区块链中。

验证过程就很简单,把得出的Nonce套进公式,就会得出一样的哈希值输出。只有同一个输入,才能得到同一个输出。

拿输出结果与目标哈希值一对比,就知道是否小于目标值。比特币的挖矿需要N亿次计算,验证答案是否正确,只需要1次计算即可。

这就是比特币的挖矿,不断把Nonce套进公式,直到找出符合条件的那个Nonce,然后经过哈希运算,把哈希值填入区块,广播给全网认证,认证通过获得比特币奖励的过程。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券