首先,简单回顾一下比特币:
比特币采取全民记账的方式,这样就没有人可以作弊了。我们每隔十分钟把比特币里面发生的所有的交易进行打包上传链接,从而形成形成区块,一个区块大小是一兆,把这些区块连接起来,就形成了区块链。
我们为要去参与比特币的记账?
最主要是比特币的交易里面有手续费,同时比特币还会赋予区块奖励,最早的区块奖励是50个比特币,因此如果你取得出块权,那么你就可以获得手续费以及出块奖励。比特币的出块奖励每四年会进行减半。

那么问题也就来了,大家都削尖了脑袋,把自己的设备放到比特币的网络里面去抢夺出块权,那到底以谁的账本为准,让谁获得区块的打包权呢?
中本聪想了一个办法:大家的设备拼命的做计算题,谁率先算出正确答案,那么就以谁的账本为准,谁就获得打包权,也获得十分钟里面的手续费收入,还有区块奖励的收入,这也就代表他的设备挖矿成功了,他就挖到比特币了。

比特币的挖矿逻辑是怎么样的?开始这个话题之前,先给大家讲一个概念:哈希计算。
比特币里面的哈希计算的用的是SHA-256算法,该算法是美国国家安全局发明的一种算法,因此网上也有人说比特币是美国国家安全局发明的,但到底是谁发明的,我们也不得而知。
SHA-256算法到底是一种什么样算法?
简单来说,它可以把一串非常庞大的数据,通过哈希计算得到256位的数据串,但是你通过256位的数据串,无法反推回原来的数据。
另外,如果我的数据发生了轻微的改动,哪怕是增加了小数点,那我得到的256位的哈希值也会产生天差地别的变化。

挖矿其实也就是哈希计算的过程。我们先来讨论,如果你要参与挖矿,你的账本上的数据应该包含哪些?
我仅列举几种,首先,你要包含之前区块里面的区块头,然后再加上这段时间里面发生的所有的交易,然后再加上随机数等。把这些内容加在一起来进行哈希计算,当你计算得到的值符合比特币的出块要求,那么你就可以获得出块权了。
这里面的随机数是可以改变的,因此如果你的计算结果不符合出块要求,你就需要更改随机数再继续计算,直到计算结果符合为止。

那有人又问了,那比特币怎么控制它十分钟出块,这就是它的挖矿难度。
比如说,我们通过哈希计算假设里面的数值,得到的答案是从0-10000,现在比特币要求计算出来的数值小于1就可以获得出块,但是,我们发现五分钟就有人计算出来了,那么这时候挖矿的难度就会提高,提高到0-5以内,你才可以获得出块权。

因此,在比特币参与挖矿,就需要不断的记录里面的交易数据,还要不断的修改你区块里面的随机数,从而得到符合比特币出块的数值,才能获得打包权,获得出块权。
符合出块权的,哈希又会变成你区块的头部,后面的人要来挖矿,那么他就会把你的区块头也放在他的数据里面,以此类推,区块链就形成了。
预告:比特币的防伪机制
版权声明
本文仅代表作者观点,不代表xx立场。
本文系作者授权xx发表,未经许可,不得转载。
最新留言