比特币作为第一个成功的加密货币,其独特的共识机制——工作量证明(Proof of Work, PoW)——是支撑其安全性和去中心化特性的基石,而“挖矿”则是这一机制的核心实践过程,许多初学者可能会想当然地认为,比特币挖矿的顺序就是矿工们谁先计算出结果谁就获胜,类似于“先到先得”的排队竞赛,比特币挖矿的“顺序”远比这复杂,它并非简单的线性先后,而是一个动态、竞争且充满概率性的过程。

要理解比特币挖矿的“顺序”,我们首先要明白挖矿的目标是什么,矿工们的竞争并非为了“解开”某个特定的数学难题,而是为了第一个找到一个符合特定条件的区块头哈希值,这个特定条件就是,区块头的哈希值必须小于或等于一个目标值,这个目标值由整个网络根据算力自动调整,大约每10分钟调整一次,以确保平均出块时间稳定在10分钟左右。

“顺序”是如何体现的呢?

  1. 候选区块的构建与广播: 当一个新的交易被打包进内存池后,矿工们会从内存池中选择一系列交易,加上上一个区块的哈希值、时间戳、难度目标等信息,构建一个“候选区块”,值得注意的是,不同的矿工可能会选择不同的交易组合(这涉及到交易费和矿工的策略),因此他们构建的候选区块内容可能略有不同,构建好候选区块后,矿工并不会立即开始大规模计算,而是会先进行一轮“快速哈希计算”(通常称为“header hash”或“pre-hash”),并将这个候选区块及其哈希值广播给其他矿工,这被称为“block template”广播。

  2. 竞争性哈希计算(核心“顺序”之争): 一旦矿工决定开始全力挖矿某个候选区块,他们就会利用其算力,不断地修改候选区块中的一个叫做“nonce”的随机数(通常是一个32位的整数),然后对整个区块头进行SHA-256哈希计算,这个过程是纯粹的暴力计算,没有技巧可言,只有算力的比拼。

    • 并非真正的“顺序”计算:随机配图