比特币挖矿到底在计算什么?你知道吗?

养生大话家

18-07-1911:53

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

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

要知道挖矿到底在计算什么,首先得知道比特币的本质及产生的过程。比特币是基于网络的电子货币,实际是互联网的一串代码,依靠算法计算得出。挖矿是完成算法的过程,也是生产比特币的唯一方式。而且由于算法规定,比特币目前只有2100万个。

1、挖矿既能生产比特币,又能保障交易信息

类似于,一个数学系统包含2100万个数学题,需要通过庞大的计算量不断的去寻求这个每个数学题的特解。另外,特解是唯一的。

下面来具体解释挖矿,从作用来说,挖矿不仅可以增加比特币货币供应,而且还可以保护比特币交易安全、防止欺诈交易。从过程来说,比特币网络是一个点对点的支付系统,任何人都可以通过交易程序进行交易。

为了确保交易过程被如实记录,就需要“矿工”这个角色来负责记录比特币交易信息,这个时间间隔是10分钟,矿工中记账最好的交易记录就会被打包存储到一个新的区块中,相应的矿工也会得到一定数量的比特币奖励。

2、挖矿过程极其复杂,非人力所能为

具体的流程如下,当某一个矿工监听到这笔交易时,首先会对交易信息进行验证。通过验证的交易则会被矿工记录下来,保存在自己的数据库里面。全世界可能有成千上万个矿工在进行同一件事,但在每十分钟内,只有一个矿工有权创建新的区块,使自己记录的交易信息被大家所承认并永久地存储下来。

接下来,矿工们就需要争夺记账权,这是一场算力竞赛的比拼,其核心是用计算机完成大量的计算任务,找到一个超难的随机数,这个随机数就是第一段所说的方程特解,最先算出正确随机数的矿工胜出。

根据游戏规律,一个矿工获得记账权的几率与其算力占全网算力之和的比例成正比。换句话说,找到该随机数的概率相当于将一亿个骰子扔出,最后骰子总和小于1亿零50。因此,挖矿需要大量的计算机,安装特定的算法软件,日夜重复运行,非人力所能为。

3、比特币挖矿其实就是“村民记账”

可能还是有网友不懂,那就举个例子。在一个村里,村民之间经常会发生借款行为,哪怕写了字据也有违约的风险。那么,在每次村里有借款行为发生的时候,就用村里的大喇叭告知大家,所有的村民(矿工)就在自己的账簿里记下所有交易记录。

在一个固定时间段里,哪位村民记得最详细、最认真,就给他奖励比特币。然后,把每个时间段最好的账簿记录先后拼接起来,就形成一个村子的债务账簿,确保借款行为赖不掉。其实,整个过程的原理就是我们常说的区块链技术。

当然,也有人会问为什么这么玩?这就是比特币系统的游戏规则,谁把账记好,谁就能得到作为奖励的比特币,同时又能保证交易记录安全,一举两得!

每一个矿工都把自己收集到的交易和自己该获得的收入填好了,那么,到底谁的记录才会被大家认可呢?比特币就采用工作量证明机制,让矿工互相间竞争求解一个数学题,谁先解出来了,谁的区块就会被所有人认可。就好像开篇的故事讲的那个村子一样,每个矿工都在努力地推那个巨石,一旦石头把自己记录的那一页账目压住了,他就大喊一声,“我的工作量证明成功了,你们快来看!”全体矿工就都过来把那一页账目抄写一份,贴在自己账本的最后面,然后又开始新的记账过程。周而复始,生生不息,账本一页一页的增加,账本越来越厚。

“中本聪”决定采用工作量证明机制的时候,出发点是避免系统受到攻击。“中本聪”认为,如果一个攻击者想用搞乱账本的方式来进行攻击,那么他就需要足够的计算能力。也就是说,他要比大多数推石头的人的力量更大。这样,他就需要付出巨大的成本,但是换回的收益并不足以抵消成本,因此攻击者是没有攻击比特币系统的经济学动力的。

与推石头的方式不同的地方在于,比特币中是大家一起通过穷举结果的方式,来求解一个数学题,并不是算力强的人每次都会赢,因为有人可能很幸运,一下子就搜索到了那个答案。而算力强的人,可能这次没那么幸运,穷举了很多次也没有碰到解。但是从概率上看,求出答案的次数和自己在整个比特币网络中算力的比例是一致的,也就是说,如果一个矿工拥有了全网30%的算力,那么基本上在1000分钟(产生了100个区块)里,有30个区块都是他找到的答案,他获得了30%的挖矿收益。

但是,现在由于比特币的价格越来越高,推石头的人已经不满足于自己去推了,而是把家里的大骡子大马都派上去干活了。在“中本聪”最初的设计里,一个CPU一票,用算力来决定哪个矿工记的账成为最终的账目。随着比特币价格的增高,开始出现了GPU挖矿,后来人们又不满足于GPU的速度,开始制造专用芯片挖矿。专用芯片在计算比特币问题的能力上是普通CPU的数万倍,因此现在比特币已经不是“一个CPU一票”了,这也背离了当初“中本聪”的设计,比特币网络已经基本上被几大矿池所垄断,背离了去中心化货币这一初衷。

比特币挖矿计算主要经过三个发展过程:第一阶段是探索期,主要是使用普通电脑的CPU进行挖矿;第二阶段是成长期,开始通过使用大量高性能的显卡进行比特币挖矿;第三阶段是成熟期,利用区块链技术,特别是蚂蚁矿机的推广,CPU、高性能CPU开始逐渐退出了比特币挖矿市场。

养生大话家

最近更新:18-07-1911:53

简介:关注生活,关注社会,关注天下

返回顶部