2009年,中本聪挖掘出比特币的首个区块,也就是创世区块,给大众带来了比特币这个开源概念。从那时起,比特币迅速发展,从一个小众利基货币成长为全球通用的货币。比特币成功的一个关键因素是它引入了“挖矿”这个概念,基于密码学的原理。
挖矿是指将新的交易记录添加到比特币的分布式公共账本(区块链)的过程。区块链的作用是确认网络内已发生的交易,并验证个体交易的真实性和合法性,以防止双重支付的情况发生。
对于资源密集型的挖矿产业来说,维持区块生成的速度是一大难题。为了实现这一过程,每个区块都需要包含工作量证明以证明其有效性。
工作量证明是指将一组交易记录添加到分布式网络所需要满足的条件。每组交易压缩在区块头中,而区块头中还包含一段随机字符串(NOUNCE)。矿机需要不断尝试计算出正确的字符串(NOUNCE),使得整个区块满足一定的条件。对于比特币而言,该字符串需要满足块的SHA-256哈希值(要求有一定数量的前导0)。
比特币的普及也提高了工作量证明共识算法的可见性,许多其他早期的加密货币在其技术堆栈中也采用了工作量证明的共识算法,并对其进行了大量的调整和改进。
区块生成的计算难度由算法决定,以维持区块生成速率的稳定。对于比特币而言,难度的调节主要是改变所要求SHA256哈希值前导0的个数。找到以很多0开始的随机散列的几率非常低,因此需要进行很多尝试。为确保每次尝试都产生不同的结果,每次尝试之前,随机字符串(NOUNCE)都会增加。
当网络增长或者矿工的算力增加时,会导致网络难度增加。随着更多矿工加入节点以及更高效的设备进行计算,全网的算力将增加,从而缩短出块时间。因此,为了抵消算力增长带来的影响,需要增加出块的难度。