区块链芝士丨什么是数字货币挖矿?
加密货币挖掘的重要要素是能够进行点对点的非中心化工作,而不受第三方中央管理。
挖掘币是一个过程。在这个过程中,用户之间的交易会被验证并创建新的区块,链接到公开的分类账中。这也是一种用于引入新硬币到现有的区块链供应的过程。
它是如何工作的?
采扩者演绎节点的角色,他们的工作是收集网络上的交易,然后整理到该到的分组块上。每当有交易提交,采扩者的节点会收到指示而进行认证和确认的工作,然后将它们添加到内存池并开始将一连串的交易组装成块。
开始之前的第一步是把所有交易的哈希数据输入到内存池上。然后过程运作之前,采扩者会在自己的节点发送交易,该交易地址将用于收取之后采矿成功的奖金。这动作称为“coinbase”交易,它是“凭空”创建币交易的一种,大多数情况下这会是新区块链上中第一笔交易。
在对每个交易进行处理后,这些数值会组合成一个被称为Merkle树(Merkle Tree) 或哈希树(Hash Tree)的东西,这代表哈希值已被序列组合成对,然后再次进行哈希序列处理,直到达到“树”的顶部”,也称为”根哈希”(Root Hash)或”根Merkle”(Root Merkle).
根哈希然后将连到之前的区块生成一列组随机数字称为 “Nounce”放在该区块作为标题。其后利用该区块标题,哈希算法会生成,输出作为区块的身份辨认标志。
区块的身份辨认标志符必须小于协议设置的某个标准值。换句话说,区块哈希必须达到一定数量的数位零开始。该目标值(也称为哈希散列难度),确保任何新区块创建能保持一定的缩放度和比率,让哈希值在网络的散列能力保持适度比例。
采扩者会通过一直反复进行散列(nonce)来机算区块标题,直到有网络中的采扩者成功生成有效的序列。当成功找到序列时,成功发掘的采扩者我广播到所有网络 。所有节点会验证序列是否有效,其后会复制至他们的区块链,然后继续去挖掘新的区块。
但是,亦有时两个采扩者同时广播一样有效的序列区块,网络最终会有两个区块互相竞争。
采扩者们会先根据他们收到的区块开始挖掘下一个区块。这些区块之间的竞争将持续到下一个新区块从其中竞争区块中挖掘成功为止。被放弃的区块称为孤儿块或弃置块。采扩者将转回采矿该赢出区块的区块链。
采矿池
虽然挖掘成功的奖金会被授予首先发现序列的采扩者,但是找到序列的成功率概率与总网络采矿挖掘能力是相等的。拥有较少采矿能力的采扩者能发现下一个区块的机会相对地低。
而创建挖掘池就是为了解决这个问题,它意味着采扩者能通过网络,共享处理能力给网络其他人来汇集资源,得到的奖金将根据他们挖掘贡献的工作量而平均分配给池中的每个人。