挖矿 (数位货币)

挖矿（Mining），是指透过执行工作量证明或其他类似的电脑算法来获取加密货币，例如比特币、以太币、莱特币等。由于此名称源自对采矿的比喻，进行挖矿工作的人通常称为矿工。

## 工作原理

比特币矿工透过解决工作量证明机制问题，以管理比特币网络 —— 确认交易并且防止双重支付。

比特币创始人中本聪在他的论文中阐述说：

在没有中央权威存在的条件下，既鼓励矿工支援比特币网络，又让比特币的货币流通体系也有了最初的货币注入源头。

中本聪将消耗CPU的电力和时间来生成比特币，比喻成金矿消耗资源将黄金注入经济。比特币的挖矿与节点软件主要是透过对等网络、数位签章、互动式证明系统来发起零知识证明与验证交易。

每一个网络节点向网络进行广播交易后，这些广播得出的交易在经过矿工（在网络上的电脑）验证后，矿工可使用自己的工作证明结果表达确认，确认后的交易会被打包到资料块中，资料块会串成连续的资料块链——区块链。中本聪设计的第一版的比特币挖矿程式被开发为广泛使用的第一代挖矿软件Bitcoin，这一代软件从2009年到2010年中较为流行。

每一个比特币的节点都会收集所有尚未确认的交易，将其归集到一个资料块中，矿工节点会附加一个随机调整数，并计算前一个资料块的SHA-256杂凑运算值。挖矿节点会不断重复寻找随机调整数，使得产生的杂凑值低于某个特定的目标。

由于杂凑运算是不可逆的，寻找到符合要求的随机调整数非常困难，需要一个可以预计总次数的暴力破解过程。此时，工作量证明机制即发挥其作用。当一个节点找到了符合要求的解，那么它就可以向全网广播自己的结果。其他节点就可以接收这个新解出来的资料块，并检验其是否符合规则。如果其他节点通过计算杂凑值发现确实满足要求（比特币要求的运算目标），那么该资料块有效，其他的节点就会接受该资料块。

## 出块奖励

除了将接收到的交易资讯打包到区块，每个区块都会允许“发行”一定数量的新比特币，用来激励成功发现新区块的矿工。

<image>

比特币系统按照预定的货币增发节奏决定发行的比特币数量。如果其他支付交易有给手续费的，那么矿工还会获得手续费。由于矿工可以自行决定是否将某一个交易信息打包到区块中，因此矿工会优先选择手续费较高的交易来打包。此竞价交易的方式维持了区块链矿工的收益，也制衡了矿工与使用者之间的力量。

区块产生速率的预期为每10分钟一个，但每个资料块中，新发行的比特币不能超过6.25个，而这个数字每产出21万个区块就会减半，大约每4年就会发生一次，2020年5月13日比特币第三次减半，减半后现在的区块奖励为6.25个。因此，比特币的总数量不会超过2100万个。随着新发行比特币数量的下降，手续费将成为挖矿的主要动机。

那些在较早时期将电脑资源投入到比特币挖矿活动中的用户，相对于较晚加入的矿工而言，获得比特币容易得多。这样设计的原因，主要是为了保证在比特币的早期发展阶段可以吸引足够的计算力来处理资料块。事实上如果没人挖矿，比特币的初期交易活动就无法处理，比特币经济也将停止运行。

- 2012年12月第一次减半
- 第二次发生减半的实际时间是2016年7月9日 16:46:13 UTC，每个区块中新发行的比特币目前为12.5个
- 2020年5月13日第三次减半，每个区块中新发行的比特币目前为6.25个
- 2024年4月20日 00:09:27 UTC，ViaBTC矿池挖出了第840000个区块，标志着第四次减半的到来，每个区块中新发行的比特币目前为3.125个

## 挖矿难度

资料块产生的速度大约维持在每十分钟一个，因此资料块的难度会定期调整。

挖矿难度取决于资料块产生的速度：资料块产生的速度加快则代表挖矿难度提高；资料块产生的速度变慢则是降低挖矿难度。比特币系统在每隔2016个资料块被产出后（约两周的时间），会以最近该两周的资料块产生速度，自动重新计算接下来的2016个资料块的挖矿难度。

而难度基本上决定了一个有效的资料块标头（Block Header）的 SHA-256 杂凑值应小于一定值，也就是说该杂凑值必须要恰好落在目标区间之内才算有效，当目标区间越小就意味着命中几率越低（则挖矿的难度越高。

由于ASIC计算设备的爆炸式加入，目前挖矿难度呈现出几何级数的上升，目前年均难度增长约为3%，让个人挖矿者的挖矿工作变得困难。

## 挖矿设备

于早期，比特币矿工都是透过Intel或AMD的CPU产品来挖矿。但由于挖矿讲求运算密集型应用，且随着挖矿人数与设备性能的不断提升难度逐渐增加，现在大部分货币（比特币、以太币等）使用CPU挖矿早已毫无收益甚至亏损，现时通常使用GPU或ASIC等并行性能更强的设备。但亦有部分加密货币（如门罗币）设计的目的是对抗ASIC，那些加密货币对GPU矿机的优势进行了限制，使得CPU挖矿仍然有效。

从2013年第一季度后，矿工逐渐开始采用GPU或FPGA等挖矿设备。同时，ASIC设备也在2013年中旬大量上市。

从2013年7月起，全网算力因ASIC设备的大量投入运营呈现直线上涨，以2013年7月的平均算力计算，所有CPU挖矿设备均已经无法产生正收益，而FPGA设备也接近无收益。2013年9月平均算力估算，现有的针对个人开发的小型ASIC挖矿设备在未来1-2个月内也接近无正收益。大量算力被 5 THash/s以上的集群式ASIC挖矿设备独占。个人挖矿由于没有收益，几乎被挤出挖矿群体。某些比特币矿工会透过集资在某些可取得低价电力的地方兴建机房安装大批挖矿设备进行挖矿。

部分比特币矿工为省下挖矿成本，将挖矿程式制作成恶意程式，在网络上感染其他人的电脑以代替自己挖矿。

## 矿池

由于比特币全网的运算水准在呈指数级别不断上涨，单个设备或少量的算力都无法在比特币网络上获取到比特币网络提供的区块奖励。在全网算力提升到了一定程度后，只余下过低的获取奖励概率。这促使一些“bitcointalk”上的极客开发出一种可以将少量算力联合运作的方法，使用这种方式建立的网站便被称作“矿池”（Mining Pool）。

在此机制中，不论个人矿工所能使用的运算力多寡，只要透过加入矿池（多人合作挖矿）来参与挖矿活动，无论是否有成功挖掘出有效资料块，皆可经由对矿池的贡献来获得少量比特币奖励，获得的比特币奖励由多人依照贡献度分享。

截止2020年5月，全球算力排名前五的比特币矿池有：F2Pool、Poolin、BTC.com、AntPool、58COIN&1THash，当时全球约70%的算力在中国矿工手中。

而截止2025年1月，全球算力前三的比特币矿池为Foundry USA、AntPool、ViaBTC，其中Foundry USA的份额超过了30%，美国逐步成为比特币挖矿的中心，再度引发用户对算力集中化的担忧。

## 手续费

比特币矿工会对大部分交易收取小额费用，其主要目的是防止有人发送大量小额交易，浪费网络资源。当前每笔交易的手续费大部分是฿ 0.0001/KB （即0.0001btc/KB），实际上0.9.0版本之后将默认手续费降为฿ 0.00001/KB （即0.00001 btc/KB）。因为大部分交易占用的数据量都小于1千字节，所以一般情况下฿ 0.00001（即0.00001 btc/KB）的手续费就已经足够。同一时间，于比特币区块奖励较少的将来时，手续费将成为矿工收入的主要来源，比特币的手续费会与该交易占用的字节数相关。

目前比特币系统中手续费的计算标准并非强制性的，因此使用者也可以在交易进行时不给予任何手续费，但大多数矿工在组建资料块时通常会优先考虑带有较高手续费的交易，以便在挖矿成功时能获得较高的报酬，因此无附带任何手续费的交易，可能会需要等待较长的时间才能被处理并纳入区块链中。

此外，现在因为区块容量上限“1MB”以及近期比特币交易量大增的因素，手续费大幅上涨，等待交易确认的时间变得更长。