比特币区块链维护着一个公共账本,账本上记录了所有曾经发生过的交易。网络上的每个节点都拥有一份完整的账本。挖矿是一个各方之间新的交易被验证,并被添加到比特币公共账本中的过程。这个过程保障了区块链的安全性。因此区块链上的挖矿行为,是一个铸造新的比特币,并将其引入已有流通供应的比特币中的机制。
挖矿的基础组成部分
比特币挖矿是被设计成资源密集型,同时也是具有挑战性的,比特币上每天发现的区块数量是不变的。该过程利用了一种被称为工作量证明(POW)的共识算法。
在工作量证明的机制下,矿工们互相竞争,通过解决一个复杂的数学方程,他们就可以独自在比特币网络上完成既定区块的交易。这些方程是被设计为很难解决的,但是方程的解却是可以很快被验证的。
一旦矿工找到新区块方程的解,他们就会将该区块广播给整个网络。所有其他矿工将核实答案是否正确,并且确认该区块。
加密哈希算法是控制比特币区块链不可篡改性和安全性的基础原理。Craig S. Wright博士化名中本聪,在创建比特币协议时,使用了SHA-256哈希函数。这个哈希函数将输出一个256位数字,为了便于人们更自然地理解,这个数字会使用64个字符的十六进制系统的数字来表示。
区块链的挖矿难度,指的是寻找到新区块的难易程度。若难度越高,则意味着找到新区块越难。这个难度将会定期调整,以确保挖矿的速率保持不变,并与网络中的哈希算例成正比。例如,当新的矿工加入网络时,随着竞争的增加,哈希难度也会增加,以防止平均出块时间减少。如果矿工离开网络,当系统内的算力较少时,哈希难度则会降低,以保持出块时间不变。每发现2016个区块,区块链网络就会调整一次难度等级。
挖矿是如何进行的?
挖矿是比特币区块链作为一个没有第三方中央权威机构参与的、去中心化的点对点网络运行的关键元素。广义而言,一方将比特币发送给另一方的交易会由节点(Nodes)插入区块链。矿工们运行特定的软件程序,将这些区块记录在比特币区块链上。
节点是区块链的基础。节点是矿工,它连接到比特币网络来查找区块并处理交易。节点通过使用比特币的点对点协议,在分布式系统内传输信息,以相互进行通信。所有网络上的节点会接收这些交易信息,随后验证它们的有效性。
之后会发生什么
矿工会从内存池中收集交易,单独计算出它们的哈希值,然后将其组装到区块中。在交易的哈希值会被组装成一个Merkle树(默克尔树或哈希树)。
Merkle树是通过将各种交易的哈希值成对排列,然后再次对它们进行哈希处理而形成的。这些输出的哈希值被组装成对,然后再次重复计算出新的哈希值,直到达到“树的顶端”。树的顶端被称为根哈希或Merkle根。它是一个单独的哈希值,代表了其生成过程中,使用了所有以前的哈希值。
区块头包含以下内容:
根哈希 前一个区块的哈希 时间戳 客户端软件版本 目标值(难度目标值) 一个被称为Nonce的随机数区块的哈希值,是由对区块头进行哈希计算的结果而得出的。它将作为新生成区块的标识符。
挖矿产生区块具有挑战性,因为这个区块头的SHA-256哈希值,必须低于或等于网络要接受区块的目标值。矿工通过迭代随机数,不断地重复对区块头进行哈希计算,直到网络上的某个矿工产生有效的区块哈希为止。
在有效区块被找到后,发起节点将向比特币网络广播该区块。其他节点会检查该哈希值是否合法,如果合法,它们会将该区块附加到自身的区块链副本中,这样就更新了账本,然后它们会继续去挖下一个区块。
区块更新失败的情况
有时候,两个矿工会同时广播有效的区块,网络会产生两个区块竞争的状况。这种“竞争状态”的出现是因为接受区块进入区块链网络并不是瞬时发生的。矿工的网络速度和连通性各不相同。无论哪个参与竞争的矿工,向大多数其他矿工广播自己的区块,最终都会有一个获胜。
当出现这种情况时,矿工会开始根据他们首先收到的区块,来开采下一个区块。竞争将持续到其中任意矿工基于任一区块再开采出下一个区块为止。被拒绝的块称为旧块或孤块。
位于被拒绝区块上的矿工将会回滚交易,在丧失区块奖励的同时,转而开采基于获胜区块构建的这条链。矿工们希望能尽快处理最长的链条,因为持续在一条被遗弃的链上挖矿是浪费时间和资源的。
安全风险
在极少数情况下,当某个团体或个人拥有区块链网络的大部分算力时,就有可能利用他们的力量来破坏区块链。通过使用挖矿算力来控制和破坏区块链的行为被称为51%攻击。
工作量证明有助于保护比特币网络免受攻击。成功的攻击需要在长时间范围内拥有大量的算力,因为该攻击若要造成真正的伤害,必须是持续性的。
所以说,这类攻击将是低效率的,因为其花费的成本将高于攻击网络所带来的潜在回报。对于矿工来说,使用他们的算力,公平地多挖一些区块来获得利润,比尝试攻击更有益处。
区块奖励
区块链挖矿的第一步是添加一个coinbase交易,这是只能由矿工创建的、独特类型的比特币交易。这笔交易没有任何输入(发送方),在比特币网络上开采出的每个新区块都有一个coinbase交易。区块奖励和矿工收取的交易费用,将作为挖出新区块的补偿发送到本次交易中。
诚然,比特币区块链的挖矿过程还有更多值得了解的内容。值得庆幸的是,您可以在掌握诸如代币化(Tokenization)、智能合约等比特币相关概念的过程中学习它。请继续阅读,很快您也会成为一位数字货币和区块链的专家!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。