详解比特币挖矿的原理

阿里云教程2个月前发布
18 13 0

比特币是2008年由中本聪提出的货币形式。其是一种由开源的P2P软件产生的电子货币。任何人使用运行有效“挖矿”软件的计算机,都可以“制造”出比特币,并对自己制造出来的比特币即时拥有所有权。比特币被设置为到2140年只能生产出2100万单位,它的信用并不由某个人或者组织来支持,而是基于自然算法,属于自然信用货币。

比特币挖矿是一个通过计算竞争记账权,从而获得比特币奖励和交易手续费的过程。它同时解决了两个核心问题:如何发行新货币和如何保证交易记录的真实可靠(即去中心化的信任)。

比特币挖矿就像是一场“全球性的数字货币彩票”。彩票点就是比特币网络。彩票机就是矿机,每期彩票:每10分钟出一个新区块,彩票号码是那个满足条件的哈希值,买彩票就是消耗的电力和矿机损耗,中奖就是挖出区块,获得比特币奖励。你的算力越高,如同买的“彩票”越多,中奖的概率就越大,但每次开奖都只有一个幸运儿。早期用个人电脑的中央处理器挖矿,经过GPU挖矿(显卡挖矿,显卡更适合进行大规模并行计算,效率远高于CPU)、FPGA挖矿(一种过渡方案)、ASIC矿机(专用集成电路矿机)。这是目前的主流,是为专门进行SHA-256计算而设计的芯片,性能远超通用设备,但除了挖矿别无他用。

比特币挖矿过程中的关键步骤:

1、交易打包

用户发起比特币交易后,交易会被广播到比特币网络中。矿工的工作之一就是收集这些尚未被确认的交易,并将它们打包成一个候选区块。

2、构建区块头

矿工会构建一个叫做“区块头”的数据结构,它包含了以下几项关键信息:

上一个区块的哈希值:指向上一个区块,形成链条,这是区块链不可篡改的基础。

Merkle根:将本区块内所有交易通过哈希算法计算出的一个唯一、简洁的指纹。任何交易的改动都会导致Merkle根彻底改变。

时间戳:区块产生的大致时间。

难度目标:当前网络计算难度的目标值。

随机数(Nonce):这是一个可以任意更改的数字,是矿工求解的关键。

3、工作量证明(PoW)

矿工的核心工作开始了。他们需要调整区块头里的随机数(Nonce),并对整个区块头进行SHA-256哈希运算,会产生一个64位的十六进制数(类似一长串乱码)。

竞赛规则是:计算出的哈希值必须小于当前网络设定的“难度目标”。

由于哈希函数的特性(输入微小变化输出天差地别、结果不可预测),矿工没有任何取巧的方法,只能靠矿机每秒进行亿万次的暴力计算(不断改变Nonce值),去碰撞出这个符合要求的哈希值。

这个过程就是“工作量证明”(Proof-of-Work),它证明了矿工的确 消耗了大量的电力能源和算力来完成这项工作。

4、验证与广播

当一个矿工幸运地找到了一个满足条件的Nonce和哈希值后,他会立即将这个新区块广播给整个网络。网络中的其他节点收到后,会超级轻松地验证这个答案是否正确(只需用给出的数据哈希一次,看结果是否满足要求)。验证过程极其简单,但找到答案却极其困难。

5、获得奖励

一旦新区块被其他节点验证通过,它就会被添加到区块链的末尾,形成最长链的一部分。找到这个区块的矿工就会获得上述的比特币奖励。

这就是比特币挖矿的基本原理,其底层技术是区块链。区块链就与比特币产生了关联。

© 版权声明

相关文章

13 条评论

  • 天哥说情感
    天哥说情感 投稿者

    通过“挖矿”获得比特币,这是一个毫无意义的过程,比特币实际就是通过冲床生产出来的游戏币,中国民间有不少人持有实物,他们在互相买卖。只要国家不准兑换不准流通,它就没有价值

    回复