---
title: "工作量证明 (PoW)"
description: "解释工作量证明共识协议及其在以太坊中的作用。"
lang: zh
---

[以太坊](/)网络最初使用包含**[工作量证明 (PoW)](/developers/docs/consensus-mechanisms/pow)**的共识机制。这使得以太坊网络的节点能够对记录在以太坊区块链上的所有信息的状态达成共识，并防止了某些类型的经济攻击。然而，以太坊在 2022 年关闭了工作量证明，并开始使用[权益证明](/developers/docs/consensus-mechanisms/pos)。

<Alert variant="update">
<AlertEmoji text=":wave:"/>
<AlertContent>
<AlertDescription>
    工作量证明现已被弃用。以太坊不再使用工作量证明作为其共识机制的一部分。相反，它使用权益证明。了解有关[权益证明](/developers/docs/consensus-mechanisms/pos/)和[质押](/staking/)的更多信息。
</AlertDescription>
</AlertContent>
</Alert>

## 前提条件 {#prerequisites}

为了更好地理解本页面，我们建议你首先阅读有关[交易](/developers/docs/transactions/)、[区块](/developers/docs/blocks/)和[共识机制](/developers/docs/consensus-mechanisms/)的内容。

## 什么是工作量证明 (PoW)？ {#what-is-pow}

中本聪共识（Nakamoto consensus）利用工作量证明，曾是让去中心化的以太坊网络对账户余额和交易顺序等事项达成共识（即所有节点达成一致）的机制。这防止了用户“双重支付”他们的代币，并确保以太坊链极难被攻击或操纵。现在，这些安全属性由权益证明提供，使用的是被称为 [Gasper](/developers/docs/consensus-mechanisms/pos/gasper/) 的共识机制。

## 工作量证明与挖矿 {#pow-and-mining}

工作量证明是底层算法，它为矿工在工作量证明区块链上所做的工作设定了难度和规则。挖矿就是“工作”本身。它是将有效区块添加到链上的行为。这很重要，因为链的长度有助于网络遵循区块链的正确分叉。完成的“工作”越多，链越长，区块号越高，网络对当前状态的确定性就越高。

[更多关于挖矿的信息](/developers/docs/consensus-mechanisms/pow/mining/)

## 以太坊的工作量证明是如何运作的？ {#how-it-works}

以太坊交易被处理成区块。在现已弃用的工作量证明以太坊中，每个区块包含：

- 区块难度 (block difficulty) – 例如：3,324,092,183,262,715
- 混合哈希 (mixHash) – 例如：`0x44bca881b07a6a09f83b130798072441705d9a665c5ac8bdf2f39a3cdf3bee29`
- 随机数 (nonce) – 例如：`0xd3ee432b4fb3d26b`

这些区块数据与工作量证明直接相关。

### 工作量证明中的工作 {#the-work}

工作量证明协议 Ethash 要求矿工经历激烈的试错竞赛，以找到区块的随机数。只有具有有效随机数的区块才能被添加到链中。

在竞相创建区块时，矿工反复将一个数据集（只能通过下载并运行完整链来获取，正如矿工所做的那样）输入到一个数学函数中。该数据集用于生成一个低于由区块难度决定的目标的 mixHash。实现这一目标的最佳方法是通过试错。

难度决定了哈希的目标值。目标值越低，有效哈希的集合就越小。一旦生成，其他矿工和客户端就非常容易验证。即使只有一笔交易发生改变，哈希也会完全不同，从而发出欺诈信号。

哈希处理使欺诈很容易被发现。但工作量证明作为一个过程，也是对攻击链的巨大威慑。

### 工作量证明与安全性 {#security}

矿工受到激励在以太坊主链上进行这项工作。一小部分矿工几乎没有动机去启动他们自己的链——这会破坏系统。区块链依赖于拥有单一状态作为事实来源。

工作量证明的目标是延长链。最长的链最令人信服地被认为是有效的，因为生成它所做的计算工作最多。在以太坊的 PoW 系统中，几乎不可能创建擦除交易、创建虚假交易或维护第二条链的新区块。这是因为恶意矿工需要始终比其他人更快地解出区块随机数。

为了持续创建恶意但有效的区块，恶意矿工需要超过 51% 的网络挖矿算力才能击败所有人。这种数量的“工作”需要大量昂贵的计算能力，并且所消耗的能源甚至可能超过攻击所获得的收益。

### 工作量证明经济学 {#economics}

工作量证明还负责向系统中发行新货币，并激励矿工完成工作。

自[君士坦丁堡升级](/ethereum-forks/#constantinople)以来，成功创建区块的矿工将获得 2 个新铸造的 ETH 和部分交易费作为奖励。叔块 (Ommer blocks) 也会补偿 1.75 个 ETH。叔块是一个矿工在另一个矿工创建规范区块几乎同时创建的有效区块，规范区块最终由哪条链首先被构建在其之上来决定。叔块通常是由于网络延迟而产生的。

## 最终性 {#finality}

当一笔交易成为不可更改的区块的一部分时，它在以太坊上就具有了“最终性”。

由于矿工以去中心化的方式工作，两个有效的区块可能会同时被挖出。这会创建一个临时的分叉。最终，在后续区块被挖出并添加到其中一条链上使其变得更长之后，这条链就成为了被接受的链。

让事情变得更复杂的是，在临时分叉上被拒绝的交易可能没有被包含在被接受的链中。这意味着它可能会被撤销。因此，最终性指的是在认为交易不可逆转之前你应该等待的时间。在以前的工作量证明以太坊下，在特定区块 `N` 之上挖出的区块越多，对 `N` 中的交易成功且不会被撤销的信心就越高。现在，有了权益证明，最终确定是区块的一个明确的属性，而不是概率性的属性。

## 工作量证明的能源消耗 {#energy}

对工作量证明的一个主要批评是保持网络安全所需的能源输出量。为了维持安全性和去中心化，基于工作量证明的以太坊消耗了大量能源。在切换到权益证明之前不久，以太坊矿工总共消耗了大约 70 太瓦时/年（大约与捷克共和国相当 - 根据 [digiconomist](https://digiconomist.net/) 在 2022 年 7 月 18 日的数据）。

## 优缺点 {#pros-and-cons}

| 优点                                                                                                                                                                                                                         | 缺点                                                                                                                                         |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| 工作量证明是中立的。你不需要 ETH 即可开始，区块奖励允许你从 0 个 ETH 变为正余额。而使用[权益证明](/developers/docs/consensus-mechanisms/pos/)，你需要先有 ETH 才能开始。 | 工作量证明消耗大量能源，对环境不利。                                                                      |
| 工作量证明是一种经过反复测试的共识机制，多年来一直保持着比特币和以太坊的安全和去中心化。                                                                                          | 如果你想挖矿，你需要非常专业的设备，这是一笔很大的初始投资。                                                |
| 与权益证明相比，它相对容易实现。                                                                                                                                                                | 由于所需的计算量不断增加，矿池可能会主导挖矿游戏，从而导致中心化和安全风险。 |

## 与权益证明的比较 {#compared-to-pos}

从高层次来看，权益证明与工作量证明的最终目标相同：帮助去中心化网络安全地达成共识。但它在流程和参与者方面存在一些差异：

- 权益证明将计算能力的重要性替换为质押的 ETH。
- 权益证明用验证者取代了矿工。验证者质押他们的 ETH 以激活创建新区块的能力。
- 验证者不竞争创建区块，而是由算法随机选择。
- 最终性更清晰：在某些检查点，如果 2/3 的验证者对区块状态达成一致，则认为该区块是最终的。验证者必须将他们的全部质押押在这上面，因此如果他们试图在未来串通，他们将失去全部质押。

[更多关于权益证明的信息](/developers/docs/consensus-mechanisms/pos/)

## 更喜欢视觉学习？ {#visual-learner}

<VideoWatch slug="proof-of-work-explained" />

## 延伸阅读 {#further-reading}

- [多数人攻击 (Majority attack)](https://en.bitcoin.it/wiki/Majority_attack)
- [关于结算最终性](https://blog.ethereum.org/2016/05/09/on-settlement-finality)

### 视频 {#videos}

- [工作量证明协议的技术解释](https://youtu.be/9V1bipPkCTU)

## 相关主题 {#related-topics}

- [挖矿](/developers/docs/consensus-mechanisms/pow/mining/)
- [权益证明](/developers/docs/consensus-mechanisms/pos/)
- [权威证明](/developers/docs/consensus-mechanisms/poa/)