发布时间:2018-06-22 13:37:29 文章来源:互联网
微博 微信 QQ空间

你要盈利的话,当然要靠计算机啦,还是那种专门为比特币算法开发的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级别,其中的差距可想而知。

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

 

另一视角

换一换