几乎每一个接触比特币的朋友, 都会有这样一个疑问: 挖比特币用的算力到底都用来干什么了? 即使是专业的 '矿工' , 也很难回答这个问题. 甚至有人说挖比特币的算力用到了科研上了, 比如寻找下一个 '地球' , 解密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去挖矿, 也不如游戏性能更差的矿机挖的快.
而且你就算用比特币网络的算力去挖基于其他算法的币, 效率也非常低下.
也就是说, 比特币网络的算力是否有价值, 最终还要看大家承不承认比特币是不是货币. 如果大家承认比特币, 那么比特币网络将是全世界最安全的金融系统. 从这个角度来看, 比特币网络的算力实在是太有价值了!
如果比特币没有被公认为货币的话, 那么比特币网络算力的价值非常小, 小到微乎其微, 比特币的价格完全是被炒上去的, 充满了泡沫.
以上两个结论都是在比特币被定性之后所得出来的, 当下比特币到底是不是货币还无法定性. 但目前比特币并没有成为公认的货币, 所以现在看来, 比特币网络算力的最大价值就是, 能挖出比特币卖钱, 这样的比特币更像是商品.
最后回答一下刚开始的问题, 比特币的算力都用来干什么了? 往大的说是维护比特币网络的安全, 往小的说就是在算数; 耗费这么多人力物力实现的算力有意义吗? 不好说; 那为什么还有那么多人在挖矿? 因为能赚钱啊!