比特币作为第一个去中心化数字货币,其“发行”与记账权验证的核心机制,都依赖于一个精巧的过程——挖矿,而挖矿的本质,并非传统意义上的“资源开采”,而是通过计算能力参与一场全球性的数学竞赛,竞赛的胜利者将获得新比特币的奖励(目前为3.125 BTC/区块,每四年减半)及交易手续费,这场竞赛的核心,便是比特币的挖矿算法——SHA-256哈希算法与工作量证明(PoW)机制的结合,本文将详细拆解比特币挖矿的全过程,从算法原理到实际操作,揭示“矿工”们如何用计算力碰撞出数字黄金。
比特币挖矿的数学基础是美国国家安全局(NSA)设计的SHA-256(Secure Hash Algorithm 256-bit)哈希函数,哈希函数可将任意长度的输入数据(如交易信息、区块头等)转换为一个固定长度(256位,即64个十六进制字符)的输出字符串,称为“哈希值”或“哈希摘要”,其核心特性包括:

在比特币挖矿中,矿工需要计算的是区块头的SHA-256哈希值,而区块头包含了当前区块的元数据(前一区块哈希、默克尔根、时间戳、难度目标等)和一个可变参数——nonce值。
比特币网络通过工作量证明(PoW)机制确保只有付出真实计算能力的矿工才能记账,矿工需要不断调整nonce值,并对区块头进行SHA-256哈希计算,直到生成的哈希值小于或等于当前网络设定的难度目标值。
一个典型的比特币区块头包含以下字段(均为十六进制格式):

比特币网络通过动态调整难度目标来控制出块时间稳定在约10分钟,目标值是一个256位的数字,但通常以“紧凑格式”(Bits)存储,表示为“指数 系数”,目标值为0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF时,矿工需要计算出的哈希值必须小于或等于这个数——由于哈希值是256位二进制数,目标值越小,符合条件的哈希值越少,挖矿难度越高。
矿工计算出的哈希值需要满足:
[ \text{哈希值} \leq \text{当前网络难度目标值} ]
由于哈希值是256位二进制数,可视为一个极大范围的整数,而难度目标值相当于在这个范围内划定了一个“中奖区间”,矿工的计算本质上是在用计算力“随机猜测”nonce值,直到哈希值落入这个区间。
矿工首先从比特币网络的“内存池”(mempool,待打包的交易池)中选择手续费较高、交易有效的交易,打包到当前区块中,为高效验证交易完整性,比特币采用默克尔树(Merkle Tree)结构:

构建好区块头后,矿工开始“暴力计算”:
SHA-256(SHA-256(区块头))); 由于哈希计算的随机性,矿工可能需要尝试数十亿次甚至数万亿次nonce值才能找到有效哈希,这一过程完全依赖计算能力(哈希率,单位为EH/s=10¹⁸次/秒),计算力越强,找到有效哈希的概率越高。
当矿工找到有效哈希后,会将区块广播至比特币网络,其他节点会验证:
矿工的收益来自两部分:
比特币挖矿算法的安全性依赖于去中心化的算力分布,如果单一实体控制全网51%以上的算力,理论上可能进行“双花攻击”(同一笔钱花两次)或篡改交易记录,但现实中,由于比特币网络算力庞大(2024年全网算力超600 EH/s),且算力分布在全球多个矿池和矿工手中,51%攻击的成本极高(需数十亿美元设备投入),几乎不具备可行性。