记账工作由于有奖励,每次记账都可以给自己增加一定数量的比特币。所以大家开始争相记账,但这会导致记账结果不一致的问题。为了解决这个问题,比特币系统引入了工作量证明机制。规则如下:在一段时间内,只有解决了密码学难题(工作量证明)的节点才能成功记账,其他节点会复制记账结果。
在进行工作量证明之前,记账节点会进行准备工作:收集尚未被记录的原始交易信息,检查每个交易的付款地址是否有足够的余额,验证交易是否有正确的签名,将验证通过的交易信息打包记录,并添加一个奖励交易给自己的地址增加12.5比特币。如果节点成功获得记账权,就可以获得12.5比特币的奖励。
工作量证明是通过将上一个块的Hash值和当前的账页信息一起进行Hash来完成的。为了确保每次记账约花费10分钟,需要提高记账的难度,使得Hash结果必须以若干个0开头。为了达到这个条件,在进行Hash时引入了一个随机数变量。通过不断改变随机数的值,可以找到使得Hash结果以若干个0开头的随机数,率先找到的节点就获得记账权。
对于计算量的分析,Hash值由数字和大小写字母构成的字符串,每一位有62种可能性。假设每个字符出现的概率均等,那么第一位为0的概率是1/62,需要尝试62次Hash运算才能出现一次第一位为0的情况。同理,要得到前两位为0,就需要尝试62的平方次Hash运算,以此类推。根据当前实际的区块信息,我们可以看到Hash值以18个0开头,需要尝试62的18次方次运算。这是一个非常巨大的计算量,需要大量的计算设备和电力投入。目前,矿工一般组成矿池进行挖矿,根据算力百分比来分配收益。
矿工的收益包括新发行的12.5比特币奖励和交易费收益。节点成功找到满足的Hash值后,会对全网进行广播打包区块,其他节点收到后会进行验证。只有验证通过的区块才能添加到账本中,保证了账本的唯一性。如果有作弊行为,网络节点的验证不会通过,作弊节点的区块无法记录到总账本中,因此在巨大的挖矿成本下,矿工自觉遵守比特币系统的共识协议,确保了整个系统的安全。
总的来说,矿工通过完成比特币的记账工作可以获得一定数量的比特币奖励和交易费收益。挖矿的难度和成本随着竞争的增加而增加,保证了整个系统的安全性和共识。