所谓挖到矿就是要猜到一个nonce值让该区块的摘要值小于一个会根据难度而线性调整的目标值,这也是所谓的工作量证明。简单一点说,就是重复计算去块头额哈希值,不断地改变参数,直到与哈希值匹配的一个过程。
当节点创建一个候选区块的时候,那旷工就准备开始进行挖矿。矿机开始超高速运行SHA256算法,这些硬件会通过USB链接到存在于电脑上的挖矿节点上,然后挖矿节点会将区块头信息传给这些硬件,让他们进行非常高频的nonce测试。
当一项交易被区块收录的时候,可以被认为是一次确认。在此区块之后每产生一个区块,此项的交易数就再加一。当确认数目到达六次以上的时候,通常就能认为此项交易比较安全并且不可逆转。那么现在,这笔交易已经在比特币网络上传播开,但只有通过验证且加到一个区块中的时候,这笔交易才能成为区块链的一部分。
新的交易不断地涌入比特币网络,当节点们看这些交易的时候,会将这些交易临时放到自己各自维护的一个临时的交易池中,当旷工创建出一个区块以后,便可以把这些交易从交易池中拿出放到这个新区块中,然后通过解决一个难度很大的问题去证明这个区块的合法性。
一般来说,个体矿工自己一个人独立进行挖矿在这样一个竞争的大环境中是几乎没有可以盈利的可能的。因为他们的算力让他们很难靠一己之力可以挖到区块去平衡他所付出的硬件设备费用及相关的电力费用。所以在这样的时候,他们会选择加入矿池。众多矿工组合成矿池,汇聚大家的算力,然后一起分享奖励。所以不出意外的话最后一行中间那个大的绿箭头后面的一串字符就是一个矿池的地址而非个人矿工的,该矿池获得了25个比特币的奖励,多的后面的零头是参与挖矿所得的矿工费。
每一个子区块都只有一个父区块,但一个父区块可以暂时拥有很多子区块,这种情况被称为区块链分叉。这种只有当不同的矿工在同一时刻发现不同的区块时才会发生。这时解决的方法就是,每一个节点总是选择并尝试延长拥有最大工作量证明(最长或者最大难度)的区块链。
当熊猫君A,兔子君B节点分别在比特币网络广播的时候,部分节点会先收到熊猫君A的广播,部分会先收到兔子君B的广播,然后分为两派阵营的节点会分别开始以他们接收到的区块作为父区块,进行深一步的挖矿活动。
领取专属 10元无门槛券
私享最新 技术干货