相信你或多或少的听说过“挖矿”这个词,当然它并不是指你拿个铁楸去深山老林中手动挖矿。
问:那么在区块链当中,“挖矿是指什么?”
这里又得分两个层面来回答,首先对于矿工(各网络节点)而言是目的,答案当然是为了获得奖励:比特币(英文:Bitcoin ,简写 BTC)。
其次,对于区块链本身,挖矿是一种手段,为了发行新 BTC以及完成去中心化的交易记账。
区块链简单概括来讲是一个加密的分布式(去中心化)记账系统,分布式意味着系统中不存在中心服务器,所有节点都是平等的,所有的交易记账均由网络上分散的节点来完成。
这就衍生出一个问题,全球成百上千万的节点记账,凭什么记账啊?
因为有奖励,而奖励就是——比特币。
有奖励就意味着竞争,所有的节点为了获得奖励,拼命的提升各节点的算力(算力越大获得区块记账的奖励越高),目前一个新区块可获得12.5 个比特币(如果加上该区块中的交易费,不止 12.5 个),平均每 10 分钟生成一个区块。可想而知,竞争还是异常激烈的。
那节点有了算力,到底是在竞争什么呢?
在挖矿过程中,各节点需基于哈希算法去求得一个随机数(Nonce)值,这个随机数厉害了,没有人知道它是多少,唯一的方法就是简单粗爆的不断尝试(如每秒亿成次的尝试),直至找到这样一个满足条件的随机数。
那这个随机数(Nonce)大概有什么特征呢?
将该随机数加上父区块的哈希值通过特定算法得出一个既定条件的值(比如前 20 位为 0 ),即为正确的 Nonce。
如果网络其它节点验证通过后,将新生成一个区块,区块中的奖励都归该节点的矿工所有,这个过程就叫“挖矿”(意味着发现该 Nonce 值的节点“挖矿”成功了)。
事实上,这里还有涉及一个 PoW 的名词概念,即工作量证明,简单理解就是所有人都认可你的工作量(不可能作弊得出随机数)。
这里需要注意的是,一旦当前节点发现网络上有其它节点宣布了该 Nonce 值及区块的产生,意味着当前节点已经在本次区块的竞争中失败,接下来就会马上投入到下一个区块的挖矿中(是的,刚才所有的算力和付出都是白费的)。
那么问题来了,你挖矿了吗?
领取专属 10元无门槛券
私享最新 技术干货