在挖掘的时候,随机数是未知的,从0到2的32次方有4294967296种可能。随机数可以变化,必须从0到2的32次方进行尝试。比特币的块哈希算法比特币挖矿算法是对块头进行两次sha256哈希。如果结果小于块中指定的难度目标,则挖掘成功。

比特币挖矿一定要用计算机吗?为什么不能用纸和笔来计算呢?

比特币其实是一个毫无用处的一串数字,但是被大家公认为有用,它就像钻石古董字画游戏皮肤等被赋予了价值。既不能吃,也不能用,但我们还是会认可它们的价值。比特币是一种虚拟货币,基于区块链技术,区块链是一个人人都可以参与数据处理的数据库。通俗一些讲比特币系统就是一个大型的记账本,它不需要一个具体的地方去记录某个账户下有多少余额,只要知道所有账户之间的转账记录,就可以推算出某个账户下有多少余额。

举个例子ABC账户初始值分别为5000转账记录A转给B10B转给C5C转给A2B转给A3这时,就可以计算出ABC的余额分别为A50-10 2 3=45B0 10-5-3=2C0 5-2=3A转账给B时,A不光要自己记账,还要把这个账单广播给区块链上的所有人。挖矿的过程实际上就是一个账单数据记录的过程,每隔10分钟左右就需要矿工将之前没有经过大家确认的交易数据收集起来进行处理。

但问题就来了,矿工那么多,到底用谁处理的数据?系统就有了一个特殊的机制,所有参与的矿工把数据打包的时候必须加入一个叫做哈希值的东西,系统才会认可你处理的数据。挖矿其实就是找Nonce随机数,通过生成区块头部的随机数来调整每次哈希的结果,使得计算出来的区块的哈希值符合一个特定的标准。谁能最先完成这件事,并把自己的工作成果广播给其他的矿工确认,全网其他节点核对该区块记账的正确性,且大部分认为没问题,谁就能获得记录数据的权利,以及很多的比特币作为奖励。

最开始的时间,每次奖励50个比特币,每过4年时间奖励减半2009-2012年,每次奖励50btc2013-2016年,每次奖励25btc2017-2020年,每次奖励12.5btc按照这样的规划,到2140年左右,奖励会变为0,比特币总量约2100万个。其实,矿工挖矿不仅仅是为了比特币,是维护整个区块链网络的重要环节挖矿的人越多,参与数据确认的人也就越多,区块数据也就越安全。

比特币的区块哈希算法比特币挖矿的算法,是对区块头做两次sha256哈希运算,得到的结果如果小于区块中规定的难度目标,即挖矿成功。挖矿节点一旦筛选好交易数据,按照时间顺序,两两哈希,层层约减,就可以计算出一颗Merkle树,可以确定一个唯一的摘要,这就是Merkle树的根。Merkle树中,任何节点的变化,都会导致Merkle树的根发生变化,通过这个值,可以用来验证区块中的交易数据是否被改动过。

区块头是80字节,平均每个交易至少250字节,平均每个区块包含2000个交易。区块哈希值实际上并不包含在区块的数据结构里,区块打包时只有区块头被用于计算哈希。交易数据都通过Merkle树固定了下来,不需要再包含进来。所以区块链是通过区块头链接在一起的。随机数可以变化,而且要从0试到2的32次方。直到最后出现的hash结果其数字低于难度目标值。

比如猜出来的值输入后得到hash值前面40个都是零,而要求是前面35个0,那么肯定符合要求。在挖矿时,随机数是未知的,要从0试到2的32次方,就是4294967296种可能性。以现在的一台矿机的算力,全部算完也不需要一秒,所以还需要改变区块内部的创币交易中的附带消息,这样就让Merkle根发生了变化,从而有更多的可能去找符合要求的随机数。

在采矿业中,第一笔交易是铸币。硬币创建交易可以伴随一个文本消息,该文本消息可以用于提供更多符合要求的随机数。例如,当中本聪挖出创造块时,它植入了2009年1月3日的信息。综上所述,比特币是无法用纸和笔来计算的。


文章TAG:挖矿为什么要gpu  挖矿  gpu  笔来  用纸  计算  
下一篇