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

权益证明 (PoS) 是以太坊[共识机制](/developers/docs/consensus-mechanisms/)的基础。以太坊在 2022 年启用了权益证明机制，因为与之前的[工作量证明 (PoW)](/developers/docs/consensus-mechanisms/pow)架构相比，它更安全、能耗更低，并且更利于实施新的扩容解决方案。

## 前提条件 {#prerequisites}

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

## 什么是权益证明 (PoS)？ {#what-is-pos}

权益证明是一种证明验证者已向网络投入有价值资产的方式，如果他们表现不诚实，这些资产可能会被销毁。在[以太坊的](/)权益证明中，验证者明确地将 ETH 形式的资金质押到以太坊上的智能合约中。然后，验证者负责检查在网络上传播的新区块是否有效，并偶尔自己创建和传播新区块。如果他们试图欺骗网络（例如，在应该发送一个区块时提议多个区块，或者发送相互冲突的证明），他们质押的部分或全部 ETH 可能会被销毁。

## 验证者 {#validators}

要作为验证者参与，用户必须向存款合约存入 32 个 ETH，并运行三个独立的软件：执行客户端、共识客户端和验证者客户端。在存入 ETH 后，用户会加入一个激活队列，该队列限制了新验证者加入网络的速率。一旦激活，验证者就会从以太坊网络上的对等节点接收新区块。区块中包含的交易会被重新执行，以检查对以太坊状态的提议更改是否有效，并检查区块签名。然后，验证者在整个网络中发送支持该区块的投票（称为证明）。

在工作量证明下，区块的时间由挖矿难度决定，而在权益证明中，节奏是固定的。权益证明以太坊中的时间分为时隙（12 秒）和时段（32 个时隙）。在每个时隙中，会随机选择一名验证者作为区块提议者。该验证者负责创建一个新区块并将其发送给网络上的其他节点。同样在每个时隙中，会随机选择一个验证者委员会，他们的投票用于确定所提议区块的有效性。将验证者集合划分为委员会对于保持网络负载可控非常重要。委员会对验证者集合进行划分，以便每个活跃的验证者在每个时段都会进行证明，但不是在每个时隙都进行。

## 交易在以太坊权益证明中是如何执行的 {#transaction-execution-ethereum-pos}

以下提供了关于交易在以太坊权益证明中如何执行的端到端解释。

1. 用户使用其私钥创建并签名一笔[交易](/developers/docs/transactions/)。这通常由钱包或诸如 [Ethers.js](https://docs.ethers.org/v6/)、[web3js](https://docs.web3js.org/)、[web3py](https://web3py.readthedocs.io/en/v5/) 等库来处理，但在底层，用户是使用以太坊 [JSON-RPC API](/developers/docs/apis/json-rpc/) 向节点发出请求。用户定义他们准备支付的 Gas 量作为给验证者的优先费，以鼓励他们将交易包含在区块中。[优先费](/developers/docs/gas/#priority-fee)支付给验证者，而[基础费用](/developers/docs/gas/#base-fee)则被销毁。
2. 交易被提交给以太坊[执行客户端](/developers/docs/nodes-and-clients/#execution-client)，该客户端会验证其有效性。这意味着确保发送者有足够的 ETH 来完成交易，并且他们使用了正确的密钥进行签名。
3. 如果交易有效，执行客户端会将其添加到其本地内存池（待处理交易列表）中，并通过执行层 Gossip 网络将其广播给其他节点。当其他节点收到该交易时，它们也会将其添加到自己的本地内存池中。高级用户可能会避免广播他们的交易，而是将其转发给专门的区块构建者，例如 [Flashbots Auction](https://docs.flashbots.net/flashbots-auction/overview)。这允许他们在即将到来的区块中组织交易以获取最大利润（[最大可提取价值 (MEV)](/developers/docs/mev/#mev-extraction)）。
4. 网络上的一个验证者节点是当前时隙的区块提议者，该节点之前已使用 RANDAO 伪随机选出。该节点负责构建并广播要添加到以太坊区块链的下一个区块，并更新全局状态。该节点由三部分组成：执行客户端、共识客户端和验证者客户端。执行客户端将本地内存池中的交易打包成“执行负载”，并在本地执行它们以生成状态更改。此信息传递给共识客户端，在共识客户端中，执行负载被包装为“信标区块”的一部分，该信标区块还包含有关奖励、惩罚、罚没、证明等信息，这些信息使网络能够就链头部的区块顺序达成共识。执行客户端和共识客户端之间的通信在[连接共识客户端和执行客户端](/developers/docs/networking-layer/#connecting-clients)中有更详细的描述。
5. 其他节点在共识层 Gossip 网络上接收新的信标区块。它们将其传递给自己的执行客户端，在执行客户端中，交易会在本地重新执行，以确保提议的状态更改是有效的。然后，验证者客户端证明该区块是有效的，并且在他们对链的视图中是逻辑上的下一个区块（这意味着它建立在具有最大证明权重的链上，如[分叉选择规则](/developers/docs/consensus-mechanisms/pos/#fork-choice)中所定义）。该区块被添加到每个对其进行证明的节点的本地数据库中。
6. 如果交易已成为在两个检查点之间具有“绝对多数链接”的链的一部分，则该交易可以被视为“已最终确定”。检查点出现在每个时段的开始，它们的存在是为了解决这样一个事实：在每个时隙中只有一部分活跃验证者进行证明，但所有活跃验证者在整个时段内都会进行证明。因此，只有在时段之间才能证明“绝对多数链接”（即网络上 66% 的总质押 ETH 在两个检查点上达成一致）。

有关最终性的更多详细信息，请参见下文。

## 最终性 {#finality}

在分布式网络中，当一笔交易成为一个区块的一部分，且如果不销毁大量 ETH 就无法更改该区块时，该交易就具有“最终性”。在权益证明以太坊上，这是使用“检查点”区块来管理的。每个时段的第一个区块是一个检查点。验证者对他们认为有效的检查点对进行投票。如果一对检查点吸引了代表至少三分之二总质押 ETH 的投票，则这些检查点将被升级。两者中较新的一个（目标）变为“已证明”。两者中较早的一个已经“已证明”，因为它是上一个时段中的“目标”。现在它被升级为“已最终确定”。这个升级检查点的过程由 **[Casper 友好的最终性小工具 (Casper FFG)](https://arxiv.org/pdf/1710.09437)** 处理。Casper FFG 是一个用于共识的区块最终性工具。一旦区块被最终确定，除非对大多数质押者进行罚没，否则无法回退或更改，这在经济上是不可行的。

要回退一个已最终确定的区块，攻击者将面临损失至少三分之一总质押 ETH 供应量的风险。这篇[以太坊基金会博客文章](https://blog.ethereum.org/2016/05/09/on-settlement-finality)解释了具体原因。由于最终性需要三分之二的多数票，攻击者可以通过使用三分之一的总质押进行投票来阻止网络达到最终性。有一种机制可以防御这种情况：[怠工泄漏](https://eth2book.info/bellatrix/part2/incentives/inactivity)。每当链超过四个时段未能最终确定时，该机制就会激活。怠工泄漏会逐渐扣除投票反对多数派的验证者所质押的 ETH，从而使多数派重新获得三分之二的绝对多数并最终确定该链。

## 加密经济安全性 {#crypto-economic-security}

运行验证者是一种承诺。验证者需要保持足够的硬件和网络连接，以参与区块验证和提案。作为回报，验证者将获得 ETH 报酬（他们的质押余额会增加）。另一方面，作为验证者参与也为用户为了个人利益或破坏而攻击网络开辟了新途径。为了防止这种情况，如果验证者在被召唤时未能参与，他们将错失 ETH 奖励；如果他们表现不诚实，他们现有的质押可能会被销毁。有两种主要行为被认为是不诚实的：在单个时隙中提议多个区块（模棱两可）以及提交相互矛盾的证明。

被罚没的 ETH 数量取决于大约在同一时间有多少验证者也被罚没。这被称为[“相关性惩罚”](https://eth2book.info/bellatrix/part2/incentives/slashing#the-correlation-penalty)，它可能很小（单个验证者单独被罚没约 1% 的质押），也可能导致验证者 100% 的质押被销毁（大规模罚没事件）。它在强制退出期的中途实施，该退出期从第 1 天的立即惩罚（最高 1 ETH）开始，第 18 天实施相关性惩罚，最后在第 36 天被逐出网络。他们每天都会受到轻微的证明惩罚，因为他们存在于网络上但没有提交投票。这一切意味着协调攻击对攻击者来说代价将非常高昂。

## 分叉选择 {#fork-choice}

当网络以最佳和诚实的方式运行时，链的头部永远只有一个新区块，并且所有验证者都会对其进行证明。然而，由于网络延迟或区块提议者模棱两可，验证者可能会对链的头部有不同的视图。因此，共识客户端需要一种算法来决定倾向于哪一个。权益证明以太坊中使用的算法称为 [LMD-GHOST](https://arxiv.org/pdf/2003.03052.pdf)，它的工作原理是识别其历史中具有最大证明权重的分叉。

## 权益证明与安全性 {#pos-and-security}

[51%攻击](https://www.investopedia.com/terms/1/51-attack.asp)的威胁在权益证明上依然存在，就像在工作量证明上一样，但对攻击者来说风险更大。攻击者将需要 51% 的质押 ETH。然后，他们可以使用自己的证明来确保他们偏好的分叉是积累了最多证明的分叉。积累证明的“权重”是共识客户端用来确定正确链的依据，因此该攻击者将能够使其分叉成为规范链。然而，权益证明相对于工作量证明的一个优势是，社区在发起反击方面具有灵活性。例如，诚实的验证者可以决定继续在少数派链上构建并忽略攻击者的分叉，同时鼓励应用程序、交易所和矿池也这样做。他们还可以决定强行将攻击者从网络中移除并销毁其质押的 ETH。这些都是抵御 51% 攻击的强大经济防御措施。

除了 51% 攻击之外，恶意行为者还可能尝试其他类型的恶意活动，例如：

- 远程攻击（尽管最终性小工具抵消了这种攻击向量）
- 短程“重组”（尽管提议者提升和证明截止时间缓解了这种情况）
- 弹跳和平衡攻击（同样被提议者提升所缓解，而且这些攻击无论如何只在理想化的网络条件下被证明过）
- 雪崩攻击（被分叉选择算法仅考虑最新消息的规则所抵消）

总的来说，正如在以太坊上实施的那样，权益证明已被证明比工作量证明在经济上更安全。

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

| 优点                                                                                                                                                                                                                | 缺点                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| 质押使个人更容易参与保护网络，从而促进去中心化。验证者节点可以在普通笔记本电脑上运行。质押池允许用户在没有 32 个 ETH 的情况下进行质押。 | 与工作量证明相比，权益证明更年轻，且经过的实战检验较少              |
| 质押更加去中心化。规模经济不适用于 PoW 挖矿那样的方式。                                                                                                         | 权益证明的实施比工作量证明更复杂                          |
| 权益证明提供比工作量证明更高的加密经济安全性                                                                                                                                           | 用户需要运行三个软件才能参与以太坊的权益证明。 |
| 激励网络参与者所需发行的新 ETH 更少                                                                                                                                            |                                                                                         |

### 与工作量证明的比较 {#comparison-to-proof-of-work}

以太坊最初使用工作量证明，但在 2022 年 9 月切换到了权益证明。与 PoW 相比，PoS 具有几个优势，例如：

- 更好的能源效率——无需在工作量证明计算上消耗大量能源
- 较低的进入门槛，降低了硬件要求——不需要顶级硬件就有机会创建新区块
- 降低了中心化风险——权益证明应该会促使更多节点来保护网络
- 由于能源需求低，激励参与所需发行的 ETH 更少
- 对不当行为的经济惩罚使得 51% 类型的攻击对攻击者来说比工作量证明成本更高
- 如果 51% 攻击克服了加密经济防御，社区可以诉诸于诚实链的社交恢复。

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

- [权益证明常见问题解答](https://vitalik.eth.limo/general/2017/12/31/pos_faq.html) _维塔利克·布特林_
- [什么是权益证明](https://consensys.net/blog/blockchain-explained/what-is-proof-of-stake/) _ConsenSys_
- [什么是权益证明及其重要性](https://bitcoinmagazine.com/culture/what-proof-of-stake-is-and-why-it-matters-1377531463) _维塔利克·布特林_
- [为什么选择权益证明（2020 年 11 月）](https://vitalik.eth.limo/general/2020/11/06/pos2020.html) _维塔利克·布特林_
- [权益证明：我如何学会爱上弱主观性](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity) _维塔利克·布特林_
- [权益证明以太坊的攻击与防御](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs)
- [权益证明设计哲学](https://medium.com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51) _维塔利克·布特林_
- [视频：维塔利克·布特林向 Lex Fridman 解释权益证明](https://www.youtube.com/watch?v=3yrqBG-7EVE)

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

- [工作量证明 (PoW)](/developers/docs/consensus-mechanisms/pow/)
- [权威证明](/developers/docs/consensus-mechanisms/poa/)