【本文由赞我(zaneds.com)独家冠名】
文/鹤兰
上篇我们谈过比特币的诞生背景,知道了币为何而来,那它底层的区块链技术又是如何将一个个区块创造出来并形成链的?所谓的挖矿又是怎么一回事呢?让我们带着问题来一场追根溯源。
1、为什么要挖矿?
比特币的诞生使交易信息可以被全网记录验证成为可能,无论是小到你跟你好朋友借了5元钱,还是大到商业贸易中动辄几十万的交易,都可以被记录在链。你可能会有疑惑,这些交易信息谁负责记录下来的呢?别人又为什么肯心甘情愿去做记账人呢?记下的帐如果不对怎么办?
这就是挖矿的原因。所谓挖矿,其实就是将一段时间内网上所有交易信息进行打包,然后把这些交易信息存在区块中,当然,这些负责记录的人不会白白记录,会得到一些奖励----比特币和实际交易过程中的手续费,这也是挖矿的意义。
可以说,有交易产生,就需要人来记录交易,要想有人来记录交易,就要给这批人一些奖励,俗话说,有钱能使鬼推磨,也是这个道理。
2、如何挖矿?
1)挖矿过程
我们先用一个简单的记账场景来理解下挖矿的过程:
假如从现在开始,10分钟过去了,在这段时间内网络上出现了很多交易信息,想要记账的很多人都虎视眈眈盯着这笔交易出来,因为记下这笔账就能得到比特币的奖励。但每个人记账前还需要算一道数学题,谁先解出答案才能获得记账权。于是,第一个最快解出答案的人,向其他人大喊一声:“我已经解出答案了!”然后把记账的结果发给其他人,其他还在计算的人便停下来,开始验证记的结果,验证通过,记账的人就会得到钱的奖励。
而真正的挖矿原理会更复杂些:
由上篇文章我们知道比特币底层技术是区块链,区块链又是由区块组成,而每个区块中又由区块头+区块体构成。
区块头中通常包含前一个区块的哈希散列值、Merkle根、时间戳、难度目标、以及一个填充的随机值。区块体中常有近400多个交易信息。
比特币挖矿的过程就是一个包含着交易信息的区块产生的过程,一个区块的产生包含着它区块头中哈希值被解出的随机值的过程。
具体的过程是这样的:
每隔10分钟,网上一些交易信息产生,矿工们先将交易信息打包成一个区块,然后开始算它的哈希值。算出来的话,通过全网传播给别的矿工,别的矿工停止计算,开始验证,验证正确的话,选择接受这个区块,记录到自己的账本中,然后进行下一个区块的竞争猜谜,而这个包含着新交易信息的新区块,挂到上个区块后面。同时,矿工获得一定的比特币奖励,后期还会有交易费。
如果验证未通过,或者矿工有作弊行为,都会导致网络的节点验证不通过,直接丢弃其打包的区块,作弊的节点耗费的成本就白费了,因此巨大的挖矿成本,也使得矿工自觉遵守共识协议,从而保证安全。
2)挖矿工具
传统挖矿中,煤矿工人需要挥动铁锹、戴着探照灯进行,而比特币挖矿中,这种工具叫挖矿机,其实就是计算的电脑。这类电脑一般有专业的挖矿芯片,多采用烧显卡的方式工作,耗电量较大。
一开始,参与挖矿的人少,需要算力小,很多人用一台普通电脑就可以计算出哈希值解的结果。
后来随着比特币价格暴涨,矿工人数增加,挖矿过程中需要的算力增大,挖矿难度上升,开始出现专业矿机,当把很多矿机集合在一起,就成了专门挖矿的矿场。
而矿池的概念是,建一个平台,所有有计算能力的人都可以参与进来,当得到奖励,按每个人的计算力高低分配奖金。
3、挖矿相关概念
a:工作量证明
工作量证明(Proof Of Work,简称POW),简单理解就是一份证明,用来确认你做过一定量的工作。在做一份工作中,记录整个过程的工作量效率很低,而通过对工作结果考量证明你的工作量,就会更高效。如现在招聘方通过你的学历证书作为你能力的考量等。
在比特币挖矿中,工作量的证明常指算力。什么是算力?就是我们上面提到的解出哈希随机值的计算能力,算的越快,最先解出答案,我们就称之为算力越大,算力越大,才能在挖矿中更大概率获得奖励。例如求2的n次方等于多少,越快得出结果的算力就越强。
b:哈希函数(Hash Function)
在挖矿过程中,我们说矿工需要解一些题才能通关,这个计算题指的就是哈希函数。
哈希函数,也称为散列函数,给定一个输入x,它会算出相应的输出H(x)。
对于比特币这种加密系统所使用的哈希函数,它有如下特点:把变长转换为定长;计算容易倒推难;哈希值对细节敏感(输入值稍微改变输出值大不一样)。
scalers老师用了一个很通俗易懂的类比:哈希函数就像一个有特异功能的榨汁机,无论你丢进去多少种水果,榨出来的果汁总是一杯;一旦换了一种水果,榨出来的果汁口感和颜色完全不一样。
这些特点使得区块链中的交易信息不易篡改、具有匿名性成为可能。
c:通货紧缩的比特币
比特币之所以被人们成为通货紧缩币,是因为它总量只有2100万枚,大概到2140年后区块不再产生新币;每四年产量减少一半。
从第一块比特币问世后的初始四年,矿工创建一个区块奖励其50枚,另外还有交易费。比特币每四年减半后,到现在矿工一次奖励减少到12.5枚。当全部的比特币被发行出来后,矿工矿工就只剩交易费作为奖励了。
因为总量有限,也是其价格奇高的原因之一,因此被称为通货紧缩的数字货币。
d:UTXO
有人说现实世界中没有比特币,只有UTXO。
什么是UTXO呢?官方释义为:未花费的交易输出,它是比特币交易的最基本单元。比特币的交易由交易输入和交易输出组成,每一笔交易都要花费一笔输入,产生一笔输出,而其所产生的输出,就是"未花费过的交易输出",也就是 UTXO。
简单解释下:小张给小李要转5个比特币,那怎样这个交易才算有效的呢?就是小张手里存在这5个比特币,也就是说这5个比特币还没有被小张花出去过,还没有交易过。这时这5个比特币转移的过程才能叫做未花费过的交易输出。
假如在之前小张已经把这5个比特币用私钥转给别人了,这个交易信息就会被记录验证,此时,小张要再想给小李转这5个比特币,就转不成了,因为属于花费过的交易额了。这样就有效防止了多重支付的问题。
所以你也可以把UTXO简单理解为你口袋里有效的那些零钱,这些零钱可以作交易使用。
END:写在最后
概括说,比特币挖矿就是人们参与维护比特币数据库,从而得到比特币奖励。比特币一开始作为虚拟货币,本没有价值,但当越来越多人参与一项有意义的工作时,获得报酬,这个报酬载体也就被赋予了价值,其实也正是人们的共识才赋予了它的价值。
就像我们工作,获得钞票一样,只不过,钞票是被国家强制规定的一种价值载体,而比特币是人们自发承认有价值的载体。至于是否持续具有价值,还需要更强大的共识力量~