---
title: "权威证明 (PoA)"
description: "解释权威证明共识协议及其在区块链生态系统中的作用。"
lang: zh
---

**权威证明 (PoA)** 是一种基于声誉的共识算法，它是[权益证明 (PoS)](/developers/docs/consensus-mechanisms/pos/)的修改版本。它主要用于私有链、测试网和本地开发网络。权威证明是一种基于声誉的共识算法，它要求信任一组授权的签名者来生成区块，而不是像权益证明 (PoS) 那样采用基于质押的机制。

## 前提条件 {#prerequisites}

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

## 什么是权威证明 (PoA)？ {#what-is-poa}

权威证明是**[权益证明 (PoS)](/developers/docs/consensus-mechanisms/pos/)**的修改版本，它是一种基于声誉的共识算法，而不是权益证明中的基于质押的机制。该术语由加文·伍德于 2017 年首次提出，这种共识算法主要用于私有链、测试网和本地开发网络，因为它克服了工作量证明 (PoW) 对高质量资源的需求，并通过让一小部分节点存储区块链并生成区块，克服了权益证明 (PoS) 的可扩展性问题。

权威证明要求信任在[创世区块](/glossary/#genesis-block)中设置的一组授权签名者。在当前的大多数实现中，所有授权签名者在决定链的共识时保留平等的权力和特权。声誉质押背后的理念是，每个授权的验证者都通过 KYC 等方式为所有人所熟知，或者由一个知名组织作为唯一的验证者——这样，如果验证者做错了什么，他们的身份是已知的。

权威证明有多种实现，但标准的以太坊实现是 **clique**，它实现了 [EIP-225](https://eips.ethereum.org/EIPS/eip-225)。Clique 是一个对开发者友好且易于实现的标准，支持所有客户端同步类型。其他实现包括 [IBFT 2.0](https://besu.hyperledger.org/private-networks/concepts/poa) 和 [Aura](https://openethereum.github.io/Chain-specification)。

## 工作原理 {#how-it-works}

在权威证明中，会选择一组授权签名者来创建新区块。签名者是根据他们的声誉选出的，并且只有他们被允许创建新区块。签名者以轮询方式被选中，每个签名者被允许在特定的时间范围内创建一个区块。区块创建时间是固定的，签名者需要在该时间范围内创建一个区块。

这里的声誉不是一个量化的东西，而是像微软和 Google 这样知名公司的声誉，因此选择受信任签名者的方式不是算法上的，而是人类正常的_信任_行为。例如，假设微软在成百上千家初创公司之间创建了一个权威证明私有网络，并扮演唯一受信任签名者的角色，未来可能会添加像 Google 这样其他知名的签名者，初创公司无疑会信任微软始终以诚实的方式行事并使用该网络。这解决了在为不同目的构建的不同小型/私有网络中进行质押以保持其去中心化和运行的需求，同时也消除了对消耗大量电力和资源的矿工的需求。一些私有网络直接使用权威证明标准，例如唯链 (VeChain)，而一些网络对其进行了修改，例如币安使用 [PoSA](https://academy.binance.com/en/glossary/proof-of-staked-authority-posa)，这是权威证明和权益证明的自定义修改版本。

投票过程由签名者自己完成。每个签名者在创建新区块时，会在其区块中投票决定添加或移除某个签名者。节点会统计投票，并根据投票达到特定阈值 `SIGNER_LIMIT` 来添加或移除签名者。

可能会出现发生小分叉的情况，区块的难度取决于该区块是按顺序签名还是不按顺序签名。“按顺序”区块的难度为 2，而“不按顺序”区块的难度为 1。在发生小分叉的情况下，拥有最多签名者“按顺序”封装区块的链将积累最大的难度并胜出。

## 攻击向量 {#attack-vectors}

### 恶意签名者 {#malicious-signers}

恶意用户可能会被添加到签名者列表中，或者签名密钥/机器可能会被攻破。在这种情况下，协议需要能够防御重组和垃圾信息攻击。提出的解决方案是，给定一个包含 N 个授权签名者的列表，任何签名者在每 K 个区块中只能铸造 1 个区块。这确保了损害是有限的，并且其余的验证者可以通过投票将恶意用户踢出。

### 审查 {#censorship-attack}

另一个有趣的攻击向量是，如果一个签名者（或一组签名者）试图审查那些投票将他们从授权列表中移除的区块。为了解决这个问题，签名者允许的铸造频率被限制为 N/2 中的 1 次。这确保了恶意签名者需要控制至少 51% 的签名账户，此时他们将实际上成为该链新的事实来源。

### 垃圾信息 {#spam-attack}

另一个小型的攻击向量是恶意签名者在他们铸造的每个区块中注入新的投票提案。由于节点需要统计所有投票以创建实际的授权签名者列表，因此它们必须随着时间的推移记录所有投票。如果不限制投票窗口，这可能会缓慢增长，且没有上限。解决方案是设置一个包含 W 个区块的_滑动_窗口，超过该窗口的投票将被视为过期。_一个合理的窗口可能是 1-2 个时段 (epoch)。_

### 并发区块 {#concurrent-blocks}

在权威证明网络中，当有 N 个授权签名者时，每个签名者被允许在 K 个区块中铸造 1 个区块，这意味着在任何给定时间点，允许 N-K+1 个验证者进行铸造。为了防止这些验证者争抢区块，每个签名者应在其发布新区块的时间上添加一个小的随机“偏移量”。虽然这个过程确保了小分叉很少见，但偶尔的分叉仍然可能发生，就像主网一样。如果发现某个签名者滥用权力并造成混乱，其他签名者可以通过投票将其踢出。

例如，如果有 10 个授权签名者，并且每个签名者被允许在 6 个区块中创建 1 个区块，那么在任何给定时间，有 5 个验证者可以创建区块。为了防止他们争抢创建区块，每个签名者在发布新区块的时间上添加一个小的随机“偏移量”。这减少了小分叉的发生，但仍然允许偶尔出现分叉，正如在以太坊主网上看到的那样。如果签名者滥用其权限并造成破坏，他们可以通过投票被踢出网络。

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

| 优点                                                                                                                                                      | 缺点                                                                                                                                                  |
| --------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| 比权益证明 (PoS) 和工作量证明 (PoW) 等其他流行机制更具可扩展性，因为它基于有限数量的区块签名者                                          | 权威证明网络通常具有相对较少的验证节点。这使得权威证明网络更加中心化。                                 |
| 权威证明区块链的运行和维护成本极低                                                                                                  | 成为授权签名者通常是普通人遥不可及的，因为区块链需要具有既定声誉的实体。 |
| 交易确认非常快，可能不到 1 秒，因为只需要有限数量的签名者来验证新区块 | 恶意签名者可能会在网络中重组、双重支付、审查交易，这些攻击虽然得到了缓解，但仍然可能发生                       |

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

- [EIP-225](https://eips.ethereum.org/EIPS/eip-225) _Clique 标准_
- [权威证明研究](https://github.com/cryptoeconomics-study/website/blob/master/docs/sync/2.4-lecture.md) _加密经济学_
- [什么是权威证明](https://forum.openzeppelin.com/t/proof-of-authority/3577) _OpenZeppelin_
- [权威证明详解](https://academy.binance.com/en/articles/proof-of-authority-explained) _币安_
- [区块链中的权威证明](https://medium.com/techskill-brew/proof-of-authority-or-poa-in-blockchain-part-11-blockchain-series-be15b3321cba)
- [Clique 详解](https://medium.com/@Destiner/clique-cross-client-proof-of-authority-algorithm-for-ethereum-8b2a135201d)
- [已弃用的权威证明，Aura 规范](https://openethereum.github.io/Chain-specification)
- [IBFT 2.0，另一种权威证明实现](https://besu.hyperledger.org/private-networks/concepts/poa)

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

观看权威证明的视频解释：

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

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

- [工作量证明 (PoW)](/developers/docs/consensus-mechanisms/pow/)
- [权益证明 (PoS)](/developers/docs/consensus-mechanisms/pos/)