区块链 Proof of Work 怎么工作?工作量证明机制详解

文章导读
上一个 测验 下一个 由于所有交易都带有时间戳,我们需要在点对点网络上实现一个分布式时间戳服务器。这需要一些额外的实现,这就是我现在要描述的 工作量证明(Proof-of-Work)。我们现在为每个区块添加一个名为 Nonce 的额外项,如下图所示 −
A A

区块链 - 工作量证明



上一个
测验
下一个

由于所有交易都带有时间戳,我们需要在点对点网络上实现一个分布式时间戳服务器。这需要一些额外的实现,这就是我现在要描述的 工作量证明(Proof-of-Work)。我们现在为每个区块添加一个名为 Nonce 的额外项,如下图所示 −

Proof of Work

Nonce 是一个数字,使得区块的 hash 满足特定条件。这个条件可以是生成的 hash 必须以四个零开头。

因此,生成的 hash 看起来像 000010101010xxx。通常,矿工从 Nonce 值 0 开始,并不断递增它,直到生成的 hash 满足指定的条件。

请注意,hash 生成是随机的,无法控制——也就是说,你无法强制 hash 函数生成特定的 hash。因此,可能需要多次迭代才能生成带有四个前导零的期望 hash。在比特币系统中,生成一个区块的预期时间为 10 分钟。一旦矿工成功挖出该区块,他就会将其发布到系统中,使其成为链中的最后一个区块。

请注意,有多个矿工在竞争生成合法区块。比特币系统会奖励第一个成功的矿工,给予他一定数量的 bitcoins。通常,计算能力更强的矿工可能更早获胜。这可能会导致拥有巨大处理能力的实体对整个系统发起攻击。我将在本教程末尾描述这些攻击以及如何缓解它们。