Доказательство полномочий (PoA)
Последнее обновление страницы: 20 октября 2025 г.
Доказательство полномочий (PoA) — это алгоритм консенсуса на основе репутации, который является модифицированной версией доказательства доли владения. Он в основном используется в частных цепях, тестовых сетях и локальных сетях разработки. PoA — это основанный на репутации алгоритм консенсуса, который требует доверия к набору авторизованных подписантов для создания блоков, вместо механизма на основе долей в PoS.
Предварительные условия
Чтобы лучше понять эту страницу, мы рекомендуем предварительно прочесть, что такое транзакции, блоки, и механизмы консенсуса.
Что такое доказательство полномочий (PoA)?
Доказательство полномочий — это модифицированная версия доказательства доли владения (PoS). Это алгоритм консенсуса, основанный на репутации, в отличие от механизма на основе долей в PoS. Этот термин был впервые представлен в 2017 году Гэвином Вудом, и этот алгоритм консенсуса в основном используется в частных цепях, тестовых сетях и локальных сетях для разработки, поскольку он устраняет необходимость в высококачественных ресурсах, как в PoW, и решает проблемы масштабируемости PoS за счет того, что небольшое подмножество узлов хранит блокчейн и производит блоки.
Доказательство полномочий требует доверия к набору авторизованных подписантов, которые заданы в . В большинстве текущих реализаций все авторизованные подписанты сохраняют равные полномочия и привилегии при определении консенсуса в цепи. Идея стейкинга на основе репутации заключается в том, что каждый авторизованный валидатор хорошо известен всем благодаря таким процедурам, как «знай своего клиента» (KYC), или потому, что единственным валидатором является известная организация — таким образом, если валидатор сделает что-то не так, его личность будет известна.
Существует несколько реализаций PoA, но стандартной реализацией Ethereum является clique, которая реализует EIP-225 (opens in a new tab). Clique — это удобный для разработчиков и простой в реализации стандарт, поддерживающий все типы синхронизации клиентов. Другие реализации включают IBFT 2.0 (opens in a new tab) и Aura (opens in a new tab).
Как это работает
В PoA для создания новых блоков выбирается набор авторизованных подписантов. Подписанты выбираются на основе их репутации, и только им разрешено создавать новые блоки. Подписанты выбираются по круговому принципу, и каждому подписанту разрешается создавать блок в определенный промежуток времени. Время создания блока фиксировано, и подписанты должны создать блок в течение этого промежутка времени.
Репутация в данном контексте — это не количественная величина, а скорее репутация известных корпораций, таких как Microsoft и Google. Следовательно, способ выбора доверенных подписантов не является алгоритмическим, а представляет собой обычный человеческий акт доверия, когда некая организация, например, Microsoft, создает частную сеть PoA между сотнями или тысячами стартапов и сама выступает в роли единственного доверенного подписанта с возможностью добавления в будущем других известных подписантов, таких как Google. Стартапы, без сомнения, будут доверять Microsoft, что она будет всегда действовать честно, и будут использовать эту сеть. Это решает проблему необходимости стейкинга в различных небольших/частных сетях, которые были созданы для разных целей, чтобы поддерживать их децентрализацию и функционирование, а также устраняет потребность в майнерах, что потребляет много энергии и ресурсов. Некоторые частные сети, такие как VeChain, используют стандарт PoA, а некоторые, например, Binance, модифицируют его, используя PoSA (opens in a new tab), который является специальной модифицированной версией PoA и PoS.
Процесс голосования осуществляется самими подписантами. Каждый подписант голосует за добавление или удаление другого подписанта в своем блоке при создании нового блока. Голоса подсчитываются узлами, и подписанты добавляются или удаляются в зависимости от того, достигли ли голоса определенного порога SIGNER_LIMIT.
Может возникнуть ситуация, когда происходят небольшие форки; сложность блока зависит от того, был ли блок подписан в свою очередь или вне очереди. Блоки, подписанные «в свою очередь», имеют сложность 2, а блоки, подписанные «вне очереди», — сложность 1. В случае небольших форков цепь, в которой большинство подписантов заверяют блоки «в свою очередь», наберет наибольшую сложность и победит.
Векторы атаки
Злонамеренные подписанты
Злонамеренный пользователь может быть добавлен в список подписантов, или ключ/машина для подписи могут быть скомпрометированы. В таком сценарии протокол должен быть в состоянии защитить себя от реорганизаций и спама. Предлагаемое решение заключается в том, что при наличии списка из N авторизованных подписантов, любой подписант может создавать только 1 блок из каждых K. Это гарантирует, что ущерб будет ограничен, а оставшиеся валидаторы смогут проголосовать за исключение злонамеренного пользователя.
Цензура
Еще один интересный вектор атаки — это если подписант (или группа подписантов) попытается подвергнуть цензуре блоки, в которых голосуют за его удаление из списка авторизации. Чтобы обойти это, разрешенная частота создания блоков для подписантов ограничена до 1 из N/2. Это гарантирует, что злонамеренным подписантам потребуется контролировать не менее 51% аккаунтов для подписи, после чего они фактически станут новым источником истины для цепи.
Спам
Еще один небольшой вектор атаки — злонамеренные подписанты, которые вставляют новые предложения для голосования в каждый создаваемый ими блок. Поскольку узлам необходимо подсчитывать все голоса для создания фактического списка авторизованных подписантов, они должны записывать все голоса с течением времени. Без ограничения окна для голосования этот список может расти медленно, но неограниченно. Решение состоит в том, чтобы установить скользящее окно в W блоков, по истечении которого голоса считаются устаревшими. Разумным окном может быть 1–2 эпохи.
Одновременные блоки
В сети PoA при наличии N авторизованных подписантов, каждому подписанту разрешается создавать 1 блок из K, что означает, что N-K+1 валидаторов могут создавать блоки в любой момент времени. Чтобы эти валидаторы не соревновались за блоки, каждый подписант должен добавлять небольшое случайное «смещение» ко времени выпуска нового блока. Хотя этот процесс гарантирует, что небольшие форки редки, случайные форки все же могут происходить, как и в основной сети. Если обнаружится, что подписант злоупотребляет своими полномочиями и вызывает хаос, другие подписанты могут проголосовать за его исключение.
Если, например, есть 10 авторизованных подписантов, и каждому подписанту разрешено создавать 1 блок из 20, то в любой момент времени 11 валидаторов могут создавать блоки. Чтобы они не соревновались за создание блоков, каждый подписант добавляет небольшое случайное «смещение» ко времени выпуска нового блока. Это уменьшает возникновение небольших форков, но все же допускает случайные форки, как это видно в основной сети Ethereum. Если подписант злоупотребляет своими полномочиями и вызывает сбои, его могут исключить из сети путем голосования.
Преимущества и недостатки
| Преимущества | Недостатки |
|---|---|
| Более масштабируемый, чем другие популярные механизмы, такие как PoS и PoW, поскольку основан на ограниченном количестве подписантов блоков. | Сети PoA обычно имеют сравнительно маленькое количество валидирующих узлов. Это делает сети PoA более централизованными. |
| Блокчейны PoA невероятно дешевы в эксплуатации и обслуживании. | Стать авторизованным подписантом обычно недоступно для обычного человека, поскольку блокчейн требует наличия организаций с устоявшейся репутацией. |
| Транзакции подтверждаются очень быстро, время может быть менее 1 секунды, поскольку для валидации новых блоков требуется лишь ограниченное число подписантов. | Злонамеренные подписанты могут проводить реорганизацию, осуществлять двойные траты, подвергать цензуре транзакции в сети; эти атаки смягчены, но все еще возможны. |
Дополнительные материалы
- EIP-225 (opens in a new tab) Стандарт Clique
- Исследование доказательства полномочий (opens in a new tab) Криптоэкономика
- Что такое доказательство полномочий (opens in a new tab) OpenZeppelin
- Объяснение доказательства полномочий (opens in a new tab) binance
- PoA в блокчейне (opens in a new tab)
- Объяснение Clique (opens in a new tab)
- Устаревшая спецификация PoA, Aura (opens in a new tab)
- IBFT 2.0, еще одна реализация PoA (opens in a new tab)
Больше увлекаетесь визуализацией?
Посмотрите визуальное объяснение доказательства полномочий: