雅乐网

计算机技术、学习成长

计算机 » 认识区块链(4)—— 比特币中的挖矿

认识区块链(4)—— 比特币中的挖矿

如果你关注硬件,可能听说过近几年显卡的涨价和矿卡的说法,矿卡指的是挖矿用下来的显卡。由于挖矿时显卡要一直保持高速度的计算,所以矿卡的剩余寿命要远远小于正常的显卡。

挖矿是什么呢?大家都知道区块链是在点对点的网络中,是去中心化的。也就是说,网络中每个结点都包含有全部的交易信息,那我们怎么保证他们记录的数据是一致的呢? 答案就是挖矿,通过挖矿可以保证点对点网络达成一致性共识。

工作量证明

工作量证明用来决定比特币区块链中新区块的打包权。在一个点对点网络中,每个结点都可以选择一些交易打包成一个区块,而每个结点打包的区块包含的交易都可能不一样。那么以哪个结点的为准呢?

在比特币中,对一个合法区块的哈希值做了限制,只有hash小于target的区块才是合法区块。

回顾一下上一章,区块头中包含nonce这个变量,是一个随机数。当你把nonce从0开始遍历,也就得到了一系列的哈希值。比特币中规定,哈希值小于target的区块才可以打包到区块链中。因此,你可以注意到,现在区块链中每个区块的哈希值都是以一长串0开头的。

挖矿的过程,就是不断遍历nonce,不断计算哈希值,直到得到符合要求的哈希值。例如上图右边就是nonce=1516705764的时候得到了符合要求的哈希值。

从第一讲我们知道,密码学中的哈希算法是没有规律的,你不知道什么样的nonce可以得到什么样的哈希值,只能暴力的一个一个去试。这也是哈希函数的puzzle friendly特点。

挖矿奖励

比特币中的结点凭什么要拼命挖矿,计算哈希值呢?上一讲提到,每个区块的交易中都有一个特殊的CoinBase交易,也是打包奖励。谁计算出符合要求的哈希值,谁就可以获得打包奖励,也就是一定的比特币。

打包奖励最开始有50个比特币,每过21万个区块,打包奖励就会减半。同时挖矿的难度target会随着全网的计算力进行调整,保证平均每10分钟可以出一个区块。这样大概每隔4年打包奖励会减半。今年的打包奖励是12.5个比特币。

最长链原则

在点对点网络中,可能两个结点同时计算出了符合要求的区块。这时比特币中有一个原则:最长链原则,也就是以最长的链为准。在一个时刻,可能区块链中有多个分叉,随着时间的进行,每条分叉上谁先挖出了下一个区块,成为最长的链,其他的分叉都会放弃自己转到这个最长链中。

我们说区块链防止篡改,除非你掌握了51%的计算资源。

当你拥有全网一半以上的算例,你可以修改一个以前的区块,然后从这个区块开始利用你强大的算例不断往下挖,知道你的链超过了原先的链,你就完成了对区块链的篡改。

如果文章对你有帮助,欢迎点赞或打赏(金额不限)。你的打赏将全部用于支付网站服务器费用和提高网站文章质量,谢谢支持。

版权声明:

本文由 原创,商业转载请联系作者获得授权。
非商业转载请注明作者 雅乐网 ,并附带本文链接:
http://www.yalewoo.com/blockchain_4_mining.html

上一篇:

下一篇:

我要评论

验证码*: 2 + 2 =