# 挖矿过程

## 基本原理

比特币中最独特的一个概念就是“挖矿”。挖矿是指网络中的维护节点，通过协助生成和确认新区块来获取一定量新增比特币的过程。

当用户向比特币网络中发布交易后，需要有人将交易进行记录和确认，形成新的区块，并串联到区块链中。在一个互相不信任的分布式系统中，该由谁来完成这件事情呢？比特币网络采用了“挖矿”的方式来解决这个问题。

目前，每 10 分钟左右生成一个区块（记录了这段时间内发生的验证过的交易内容）。SegWit 之后，区块容量以区块重量衡量，上限为 4,000,000 weight units，而不是简单的 1 MB；节点会把新区块连接到已验证的最大累计工作量链上。每个区块的成功提交者可以得到系统 3.125 个比特币的区块补贴（该补贴作为区块内的第一个交易，一定区块数后才能使用），以及用户附加到交易上的支付服务费用。即便没有任何用户交易，矿工也可以自行产生合法的区块并获得补贴。

*注：区块奖励每 21 万个区块（约 4 年）减半一次。2024 年 4 月完成第四次减半后，奖励从 6.25 BTC 降至 3.125 BTC。历次减半：50（2009）→ 25（2012）→ 12.5（2016）→ 6.25（2020）→ 3.125（2024）。*

每个区块的补贴最初是 50 个比特币，每隔 21 万个区块自动减半（约 4 年），最终新增发行趋近并停止在约 2100 万枚上限。因此，更准确地说，比特币的供给增速按规则递减，长期货币发行率趋近于零；“通缩”若指购买力或价格水平变化，则还取决于市场需求，不能仅由发行规则推出。

## 挖矿过程

挖矿的具体过程为：参与者综合上一个区块的 Hash 值，上一个区块生成之后的新的验证过的交易内容，再加上自己猜测的一个随机数 X，一起打包到一个候选新区块，让新区块的 Hash 值小于比特币网络中给定的一个数。这是一道面向全体矿工的“计算题”，这个数越小，计算出来就越难。

系统每隔两周（即经过 2016 个区块）会根据上一周期的挖矿时间来调整挖矿难度（通过调整限制数的大小），来调节生成区块的时间稳定在 10 分钟左右。为了避免震荡，每次调整的最大幅度为 4 倍。历史上最快的出块时间小于 10s，最慢的出块时间超过 1 个小时。

为了挖到矿，参与处理区块的用户端往往需要付出大量的时间和计算力。算力一般以每秒进行多少次 Hash 计算为单位，记为 h/s。截至 2025 年，比特币网络算力峰值已超过每秒 800 EH/s（即 8×10^20 次 Hash 计算）。

汇丰银行分析师 Anton Tonev 和 Davy Jose 在 2016 年一份客户报告中曾表示，比特币区块链（通过挖矿）提供了一个局部的、迄今为止最优的解决方案：如何在分散的系统中验证信任。这就意味着，区块链本质上解决了传统依赖于第三方的问题，因为这个协议不只满足了中心化机构追踪交易的需求，还使得陌生人之间产生信任。区块链的技术和安全的过程使得陌生人之间在没有被信任的第三方时产生信任。

## 如何看待挖矿

2010 年以前，挖矿还是一个非常热门的盈利行业。

但是随着相关技术和设备的发展，现在个人进行挖矿的收益已经降得很低。从概率上说，由于当前参与挖矿的计算力实在过于庞大（已经超出了大部分的超算中心），一般的算力已经不可能挖到比特币。特别是利用虚拟机来挖矿的想法，已经基本不可能了。

从普通的 CPU（2009 年）、到后来的 GPU（2010 年） 和 FPGA（2011 年末）、到后来的 ASIC 矿机（2013 年年初，目前单片算力已达每秒数百亿次 Hash 计算）、再到现在众多矿机联合组成矿池（知名矿池包括 F2Pool、BitFury 等）。短短数年间，比特币矿机的技术走完了过去几十年的集成电路的进化历程，甚至还颇有创新之处。高回报刺激了科技的飞速发展。目前，矿机主要集中在少数矿池手中，全网的算力已超过每秒 8×10^20 次 Hash 计算（800+ EH/s，截至 2025 年）。需要注意的是，ASIC 矿机执行的 SHA-256 运算与超级计算机的通用浮点运算并不等价，因此不宜简单类比。

很自然地，读者可能会想到，如果有人掌握了强大的计算力，计算出所有的新区块，并且拒不承认他人的交易内容，那是不是就能破坏掉比特币网络。确实如此，基本上个体达到 1/3 的计算力，比特币网络就存在被破坏的风险了；达到 1/2 的算力，从概率上就掌控整个网络了。但是要实现这么大的算力，将需要付出巨大的经济成本。

那么有没有办法防护呢？除了尽量避免计算力放到同一个组织手里，没太好的办法，这是目前 PoW 机制自身造成的。

也有人认为为了共识区块的生成，大部分计算力（特别是最终未能算出区块的算力）其实都浪费了。有人提出用 PoS（Proof of Stake）和 DPoS 等协议，利用权益证明（例如持有货币的币龄）作为衡量指标进行投票，相对 PoW 可以节约大量的能耗。PoS 可能会带来囤积货币的问题。除此之外，还有活跃度证明（Proof of Activity，PoA）、消耗证明（Proof of Burn，PoB）、能力证明（Proof of Capacity, PoC）、消逝时间证明（Proof of Elapsed Time）、股权速率证明（Proof of Stake Velocity，PoSV）等，采用了不同的衡量指标。

当然，无论哪种机制，都无法解决所有问题。一种可能的优化思路是引入随机代理人制度，通过算法在某段时间内确保只让部分节点参加共识的提案，并且要发放一部分“奖励”给所有在线贡献的节点。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://yeasy.gitbook.io/blockchain_guide/06_bitcoin/mining.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
