比特币怎样挖矿?

thumbnail

藉由确认交易

当你听说比特币“挖矿”(mining)的时候,你设想币是从地里挖出。但比特币并没有实体,为什么我们称之为挖矿呢?
 
因为它类似于金矿开采,因为比特币存在于协议的设计中(正如黄金存在于地下),却尚未见光(就像黄金还没有被挖出来一样)。比特币协议规定某个时间点将会有 2100 万枚比特币存在。“矿工”所做的就是让它们一个个见到天日。
 
矿工们因创建经过验证的区块,并将它们打包进区块链而获得奖励。

节点
 
回溯一下,让我们来谈谈“节点”。节点是运行比特币软件,并通过参与信息传递保持比特币运行的强大计算机。任何人都可以运行一个节点,你只需下载一个比特币软件(免费的)并让某个端口打开(缺点是它消耗电和存储空间 ——写入网络时占用大约 145 GB 的存储空间)。节点会在网络上散播比特币的交易信息。一个节点会将信息发送到它所知道的节点,后者继续将信息传送至其所知道的节点,以此类推。以此在全网快速完成信息的散播。
 
有些节点是挖矿节点(通常被称作“矿工”)。这些节点将未结算交易组为区块,并将其添加入区块链中。它们是如何做到的?通过解决作为比特币项目一部分的复杂数学难题,并将答案打包入区块。而要解决的难题是要找出一个数字,这一数字与区块中的数据结合并通过哈希函数运算后,能够产生一个落在特定范围内的结果。但实际过程远比本文描述得更为复杂。

对于追求细节的人而言,该数字被称为“随机数”(nonce),它是“不重复数字”的串联。在比特币來說,随机数是落在 0 到 4,294,967,296 间的整数。
 
解决难题
 
矿工们如何发现该数字?通过随机猜测。哈希函数使得预测输出值变得几乎不可能。所以,矿工会猜测数字并将哈希函数应用于猜测数字与数据的组合。生成的哈希值必须以预先设置的 0 的个数开始。没有办法知道哪个数是正确的,因为两个连续整数能给出的多种结果。此外,可能有几个随机数能生成期望的结果(desired result),也可能一个也没有(在这种情况下,矿工会继续尝试,但使用不同的区块配置)。
 

第一个得出期望范围(the desired range)内哈希值的矿工会向全网宣布其胜利。而后所有其他矿工立刻停止对该区块的计算,并开始计算下一个区块的哈希值。作为对相应工作的奖励,成功算出正确哈希值的矿工将获得一些新的比特币。

经济学
 
在写作本文时,单个区块的奖励是 12.5 个比特币,这些比特币在写作本文时的价值几乎达到 200,000 美元。
 
尽管听起来这并非一笔轻松的交易。有许多的挖矿节点都在为区块奖励而争抢,能否胜出视运气与计算力(后者越多,能够得出正确哈希值的概率越大,你也就越幸运)而定。
 
还有,成为挖矿节点的成本是十分可观的,不仅因为你需要强有力的硬件(如果你有比竞争者更快速的处理器,你有更大的机会赶在他们之前获得正确的数字),还因为运行处理器所要消耗的庞大电力。
 
此外,作为解决难题的奖励而授予的比特币的数量将减少。现在它是 12.5 枚,但每四年左右它会减半一次(下一次减半预计会发生在 2020 – 2021 年左右)。比特币的价值,相对于电力和硬件成本可能会在未来几年内上升,以部分弥补数量减少的问题,但目前尚不确定。

难度

计算难度(哈希字符串开头所需的 0 的个数)经常调整,所以通常平均花费 10 分钟来处理一个区块。
 
为什么是 10 分钟?这是比特币开发者认为,要稳定逐渐减少新比特币数量,直到最大总量达到 2100 万枚(预计在 2140 年的某个时间)所必需的时间。
 
如果截至目前你比较明白我们的讲解,那要恭喜你!关于这个系统仍然有很多东西要去解释,但至少现在你对这个天才的程序与概念有一个大体的认知。我们第一次拥有了这样的一个系统,它允许以去中心化、免信任、防篡改的方式进行电子化转账。它的反响可能是巨大的。

Back To Top