比特币挖矿到底在计算什么?

来源:头条 ·2018年05月25日 18:17

比特币挖矿的原理是怎样的?比特币挖矿一定要用计算机吗?我自己用纸笔来计算可以吗?

你要盈利的话,当然要靠计算机啦,还是那种专门为比特币算法开发的ASIC芯片矿机才可能挖得动。

如果你仅仅为了娱乐,你用纸笔墨也是能算出来的哦。

挖矿程序的实质是计算Hash值,靠得就是SHA-256算法,即大量的【整数】运算,所以靠手算也是可能实现挖矿的哦。具体算法如下:

SHA-256算法把之前64bit的区块数据整合成加密数据并产生了32bit的输出,但是同样的工作需要进行64次操作才算是一次完整的SHA-256计算。下图展示了把8个4bit的输入(A到H),展开或分别进行对应的运算从而产生新的值,周而复始运行64次,最后得出的结果需要符合最高20bit为全零才能算做有效算力。

上图中你可以看到,A~H产生新值并非简单循环右移,是在右移的过程中引入了对应的非线性计算(深蓝色格子的运算)来获得新A值,这种算法就能大大提升了计算难度,下面我们逐个来讲下这些值到底怎么得来的。

Ch值由E决定,如果E=1,则作为新F值;如果E=0,则作为新G值。

Σ0值就是转换A的值并且相加,得出除以2以后的余数,其实就是A向右移2、13、22位。

Σ1值也是同样原理,只不过变成了右移6、11、15位

Ma值主要和A、B、C三个值有关,如果ABC上都是0或1,输出0,如果是2或者3就输出1

Wt值是由输入的数据决定的,也就是本区块产生第t个word,Kt值则是由由每一轮运算定义第t个密钥

显然一键,没经过一轮运算,只有A和E数值发生了变化,但是你要记得一共有64轮计算,最后的结果千变万化,所以这个就是比特币挖矿算法的工作量证明方式,不停计算已获得正确答案获取奖励。

看起来很简单,但是比较熟悉这个算法的人用纸笔计算一轮需要1005秒,以这个速度计算一个完整的比特币区块(128轮)需要连续计算1.5天,算力只有可怜的0.67hashes,然而1KH/s=1000hashes,现在的矿机算力是TH/s级别,其中的差距可想而知。

等你手算出来一个结果,估计专业矿机早就算出了无数个正确答案。

展开全部

这个问题我一定要回答,别拦着我!

首先,”比特币“挖矿是怎挖的

比特币是一中虚拟货币,基于区块链技术。如果我们简单地把区块链的区块比作一个个的账本,那么”挖矿“就是“打包”过去十分钟整个区块链网络的交易,把这些交易写入新的区块,那么就“打包”完成,那就是完成了“挖矿”。完成了挖矿之后就获得了系统分发给你的比特币。这就是比特币“挖矿”比较简化的说法,当中的原理和运行还是相当复杂的。

如何分配“打包权”

比特币的价格超过2w元一个,每一次获得“打包权”,完成工作就会获得12.5个比特币(会随时间递减),获利可谓相当丰厚。

天下熙熙皆为利来天下攘攘皆为利往,只要有利润的地方就有人。网络上矿工众多,那么如何确定应该分配给哪个矿工去做这事呢?

比特币的创始人中本聪采用这种方法:采用一种叫“工作证明(Proof Of Work,简称POW)机制,即工作量的证明。

这种方法通常来说只能从结果证明,因为监测工作过程通常是繁琐与低效的。这是用来确认你做过一定量的工作,但是监测工作的整个过程极为低效,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。

我们可以比喻成,要证明您会开车技术好,企业不可能给您几天时间,跟着您在市区上走。但是,你可以提供驾驶证和之前在公交车公司当公交车司机的工作证明, 来说明您得能力。你要获得这个能力需要付出大量的时间和精力,但是企业验证却非常简单。

比特币这种加密系统所使用工作量证明机制的证明是哈希现金,需要算出对应的哈希函数。哈希现金是一种工作量证明机制,它是亚当·贝克在1997年发明的,主要用于抵抗邮件的拒绝服务攻击及垃圾邮件网关滥用。在比特币之前,哈希现金被用于垃圾邮件的过滤,也被微软用于hotmail等产品中。

对于比特币这种加密系统所使用的哈希函数,它需要具备以下的性质:

1. 免碰撞,即不会出现输入x≠y,但是H(x)=H(y)

2. 隐匿性,也就是说,对于一个给定的输出结果H(x),想要逆推出输入x,在计算上是不可能的。

3. 不存在比穷举更好的方法,可以使哈希结果H(x)落在特定的范围。

比特币在区块链的生成过程中使用了POW机制,一个符合要求的区块哈希函数由N个前导零构成,零的个数取决于网络的难度值。

要得到合理的区块哈希码需要经过大量尝试计算。当某个节点提供出一个合理的区块哈希值,那就是说明该节点确实经过了大量的尝试计算,那么系统就把”打包权“分配给该节点(矿工)

当然这不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件,所以当节点(矿工)拥有占全网n%的算力时,该节点基本上就是有n/100的概率找到区块哈希。那就是意思上说比拼算力。

当能不能记住前面几个0,然后可以使用呢?不能的,因为难度值不一样, 0的数量就不一样。而且要证明的数是一个哈希码,而且需要验证的工作量证明非常庞大,基本上无法造假。

只存在一个方法:穷举!

那么意味着,你不仅要算出你的哈希值,还需要对比对不对,如果不对的话继续算。

所以需要大量的显卡进行大量的并行运算,获取哈希值。让我们来看看,矿场是一个怎么样的存在:

这些矿场都是用很贵的显卡来算,他们的算里是人工的N倍。如果单靠人力,算十年都没有它们工作一小时的工作量大。

所以,题主,真的不要想了

2008~2017 家电新闻网 Inc. All rights reserved.