美文网首页区块链研习社区块链研究
比特币居然是这样挖出来的(高能预警,全程烧脑)

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

作者: aecc4e97bcab | 来源:发表于2018-05-03 22:05 被阅读191次

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

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

    △区块头

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

    需要找到本区块的哈希值,然后广播给全网,获得全网认可后,把该区块链接到当前的区块链上,形成一个+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去套的过程,也叫哈希碰撞,就是试图找到一个符合条件的Nonce。

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

    0000000000000001b6b9a13b095e96db41c4a928b97ef2d944a9b31b2cc7bdc4

    拿它与目标值比较

    0000000000000003A30C00000000000000000000000000000000000000000000

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

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

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

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

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

    相关文章

      网友评论

        本文标题:比特币居然是这样挖出来的(高能预警,全程烧脑)

        本文链接:https://www.haomeiwen.com/subject/aztrrftx.html