欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

比特币的算力都用来干什么?真相有点残酷

程序员文章站 2022-03-15 14:53:19
几乎每一个接触比特币的朋友,都会有这样一个疑问:挖比特币用的算力到底都用来干什么了?即使是专业的“矿工”,也很难回答这个问题。甚至有人说挖比特币的算力用到了科研上了,比如寻找...

几乎每一个接触比特币的朋友,都会有这样一个疑问:挖比特币用的算力到底都用来干什么了?即使是专业的“矿工”,也很难回答这个问题。甚至有人说挖比特币的算力用到了科研上了,比如寻找下一个“地球”、解密DNA等。对于不懂比特币的人而言,这样的解释似乎也有些道理。但事实并不是这样。

比特币的算力都用来干什么?真相有点残酷

要想解决这个问题,需要对比特币有一定了解。笔者推荐大家看中本聪的论文《比特币:一种点对点的电子现金系统》,这是比特币的源头。论文涉及到为什么需要比特币、比特币如何产生等知识。也正是这篇论文,能够解答“挖比特币用的算力到底都用来干什么”这个问题。

要想回答这个问题,我们需要从为什么要有比特币开始说。为了避免读者觉得麻烦,笔者将答案公布于此:其实这个问题的答案并不是众人想象的“服务社会、服务科学”,而是服务比特币网络,保证比特币网络的安全。

比特币的目的是要去掉交易中的中间环节,而这个中间环节就是金融机构。为了达到这个目的,比特币需要建立一套证明体系。为什么呢?举个例子,A借钱给B,中间过程需要签字条、公证等其他证明方式,证明A确实把钱借给了B。如果没有证明,B可以矢口否认,A只能认栽。在传统的交易过程中,金融机构起到了证明的作用。为什么是金融机构,因为他有公信力,以信用作背书。

比特币的算力都用来干什么?真相有点残酷
比特币网络算力变化趋势

那么比特币怎么证明A把钱借给了B呢?比特币的思路是,把这个消息记在账本上,然后全人类都能看到这个账本,这样所有的人都知道A把钱借给了B,借了多少,什么时候借的,这样B就无法矢口否认这个事实了。

把一个交易信息让所有人都知道,这就是比特币的证明体系。但又出现了一个问题,这个问题就是“双重支付”。

算力是为了维护比特币网络的安全

在解释之前需要说明一下,在比特币网络里,你有多少钱,不是你说了算,而是大家说了算,每个人都是公证人。

双重支付就是一笔钱花了两次,这种情况在纸币上是不可能发生的,但由于比特币并不是实物,只是“记账本”,中间没有实质物质进行交换,所以可以发生。继续举例子:A用1000买了B的一个东西,B记在一个账本上;同时A用相同的1000买了C的东西,C记在一个账本上。这时候B睡觉了,而C把刚才记的帐拿给大家看,B睡醒了才拿给大家看。

在B和C发货之前,这1000是属于B的还是属于C的?为了解决这个问题,比特币网络让交易不可逆,也就是不能退款。不可逆的特点让A的这两个1000交易只被承认一个。

首先,比特币将所有的交易通过随机散列加上时间戳,让交易有先后顺序,然后交易融入到基于随机散列的工作量证明所形成的链条中,这样形成的交易就无法更改。翻译成人话就是:B和C的账本拿给大家看之后,还会有人继续在这个账本上记账。

假如后面记账的大部分人都选择在B的账本上记账,那么大家就会把B的账本视为正确的,而B的账本上记着A用1000买了B的东西,这样A的1000就属于B,C记的就不被承认了,B发货给A就可以了。

比特币的算力都用来干什么?真相有点残酷
基于随机散列的工作量证明的链条

在这个过程中就需要算力,算力是为了保证区块的信息不可更改。怎么实现的呢?工作量证明基于随机散列,然后形成链条。这个链条有个特点,你想开头的话,就需要求解,求解就需要算力。而且这个求解的难度是呈现指数级增长的。只要你先求出这个解,你就获得比特币奖励。

但如果你想修改已经出现的区块,那就必须选择链条最长的那个,然后从头开始求解。这样你修改的链条才会被认为是正确的(最长的链条视为正确的链条,不理解的话可以联系前面提到的B的账本)。但这个最长的链条上有着全网下最大的工作量,全部求解的话需要耗费巨大的算力。

而这样做是得不偿失的,因为你耗费这么多算力去修改得到的结果,不如你拿这些算力去求解的收益高。这样就保证了不会有人去更改之前区块的信息,区块的信息自然就实现不可更改了。这个“不可更改”是可以更改的,只是没有人傻到会这么做而已。

也就是说,挖比特币的算力实质上是一直在求解,这样就能保证最长的链条拥有全网最大的工作量,从而不会被更改。这样也就实现了比特币系统是坚固的,是不会被人攻击的。

这种做法是否有意义那么这样做有意义吗?

我们先看这些算力。目前比特币的全网算力是非常高的,据说已经比全球前100名超算的算力总和都要强。这个观点有一定的误导性,比特币全网的算力只要是求一个算法,即SHA256算法的HASH值,这是比特币网络的工作量证明机制的要求。也就是说,比特币全网在求解SHA256算法的HASH值的算力上是非常强大。

那让比特币网络的算力去求解其他的算法呢?整个比特币网络的算力可能还没有你手上电脑的运算效率高。这是因为,比特币网络的算力太过于专业了,只是求解SHA256算法的HASH值,它做不了其他工作。这也是为什么,即使你用GTX1080Ti去挖矿,也不如游戏性能更差的矿机挖的快。

 

而且你就算用比特币网络的算力去挖基于其他算法的币,效率也非常低下。

也就是说,比特币网络的算力是否有价值,最终还要看大家承不承认比特币是不是货币。如果大家承认比特币,那么比特币网络将是全世界最安全的金融系统。从这个角度来看,比特币网络的算力实在是太有价值了!

如果比特币没有被公认为货币的话,那么比特币网络算力的价值非常小,小到微乎其微,比特币的价格完全是被炒上去的,充满了泡沫。

以上两个结论都是在比特币被定性之后所得出来的,当下比特币到底是不是货币还无法定性。但目前比特币并没有成为公认的货币,所以现在看来,比特币网络算力的最大价值就是,能挖出比特币卖钱,这样的比特币更像是商品。

最后回答一下刚开始的问题,比特币的算力都用来干什么了?往大的说是维护比特币网络的安全,往小的说就是在算数;耗费这么多人力物力实现的算力有意义吗?不好说;那为什么还有那么多人在挖矿?因为能赚钱啊!