Доказательство полномочий
Доказательство полномочий (англ. Proof-Of-Authority, PoA), также известный как алгоритм доказательства полномочий или система репутации, — это алгоритм распределённого консенсуса, используемый в блокчейн-технологиях. Он позволяет быстро валидировать транзакции на основе механизма консенсуса, зависящего от идентичности и репутации выбранных узлов-валидаторов, которые несут ответственность за создание блоков. Для выполнения своих функций этим узлам не требуется вносить залог или ставку, однако обязательна проверка их личности и надёжности.
В алгоритме PoA участвует набор из N доверенных узлов, именуемых валидаторами или авторитетами. Каждый валидатор идентифицируется уникальным идентификатором, и предполагается, что большинство из них действуют честно, то есть не менее N/2 + 1[1].
Ключевое отличие этого алгоритма консенсуса от методов доказательства выполнения работы (PoW) и доказательства доли владения (PoS) заключается в том, что PoA использует реально раскрытую по желанию валидатора личность как «гарантию доверия» и «доказательство прозрачности». Ассоциируя репутацию с реальной личностью, PoA мотивирует валидаторов поддерживать честность работы сети: любые действия, подрывающие доверие или репутацию сети, немедленно сказываются на репутации конкретного лица или организации, участвующих в валидации.
Термин PoA был предложен в 2017 году в экосистеме Ethereum одним из её основателей и бывшим техническим директором Гэвином Вудом (Gavin Wood) для частных сетей, и был реализован в клиентах Aura и Clique. Популярность подхода связана с ростом эффективности по сравнению с традиционными алгоритмами BFT (толерантность к византийским сбоям).
Принцип работы
Сначала случайным образом выбираются доверенные узлы, которые будут валидаторами. Для их утверждения и выбора проводится голосование между уже авторизованными узлами с помощью классического алгоритма консенсуса наподобие PBFT (византийский Paxos). Это предотвращает возможность того, что вредоносный узел выдаст себя за доверенного валидатора и нарушит работу сети. Перед утверждением валидаторов необходимо подтвердить их личность, что подразумевает публичное раскрытие реальных данных и готовность поставить свою репутацию в качестве гарантии перед другими участниками сети.
Поскольку алгоритм PoA базируется на репутации валидаторов, защита ими своей идентичности — критически важна. В сетях блокчейн, использующих PoA, валидаторы несут основную ответственность за любые сбои или нарушения, поэтому мотивированы обеспечивать стабильную и прозрачную работу всей системы.
Что касается механизма консенсуса, в PoA используется схема ротации роли «лидера майнинга», позволяющая равномерно распределять обязанности по генерации блоков между валидаторами. В каждом временном интервале один из авторитетов исполняет роль лидера и может подписать ограниченное число последовательных блоков.
Валидаторы
Чтобы стать валидатором, необходимо выполнить три важных требования, определяющих структуру стимулов для честного поведения участников:
- Идентичность кандидата должна быть формально проверена на соответствие надёжным данным.
- Получить статус валидатора должно быть достаточно сложно, чтобы стимулировать добросовестное поведение.
- В процессе отбора и утверждения валидаторов должна поддерживаться полная прозрачность и однородность.
На некоторых платформах требования могут немного различаться, но во всех случаях валидаторам предоставляются стимулы оставаться частью сети. Репутация играет основополагающую роль: в случае недобросовестного поведения она быстро ухудшается, и такой участник может быть удалён из числа валидаторов.
Преимущества и недостатки
Главными достоинствами PoA являются снижение затрат и повышение масштабируемости. Вычислительная стоимость этого метода намного ниже, чем у PoW, поскольку не требует майнинга в традиционном смысле, как в биткойне. Благодаря этому энергопотребление существенно ниже, что делает PoA экологичным («eco-friendly») консенсус-алгоритмом[2].
Также доказательство полномочий требует участия сравнительно небольшого числа валидаторов, что позволяет ускорять обновление блокчейн-цепи, уменьшать интервалы между блоками и увеличивать пропускную способность — особенно для частных блокчейнов, где важна высокая безопасность и масштабируемость.
Существенным ограничением PoA считается отказ от концепции полной децентрализации. Модель строится на принципах «распределённой централизации», где решения принимает ограниченное число валидаторов, а не вся сеть, как в PoW.
Ещё одним существенным недостатком является публичность идентичностей валидаторов PoA. Это может создавать риски раскрытия их уязвимых мест, что потенциально открывает возможности для давления и манипуляций со стороны третьих лиц.
Реализации
Две наиболее известные реализации доказательства полномочий — Aura и Clique. Обе используют первую фазу (предложение блока лидером), но далее различаются: Aura требует дополнительного раунда подтверждения блоков (acceptance round), а Clique — нет.
Aura — алгоритм консенсуса Proof-Of-Authority, реализованный в клиенте Parity. Его название происходит от слов Authority Round (ранее — AuRo). В настоящее время используется в тестовой сети Kovan для Ethereum[3].
В этой модели сеть считается синхронной с привязкой всех авторитетов к единым таймштампам UNIX-времени.
Процесс делится на шаги (step): на каждом шаге одна из авторитетов может подписать блок. Индекс шага вычисляется как s = t/step_duration (где step_duration — фиксированная длительность шага). Лидер на шаге s определяется как l = s mod N. Каждый валидатор локально поддерживает две очереди: Qa — для входящих транзакций, Qb — для ожидающих блоков.
В каждом шаге лидер l формирует из Qb новый блок b и рассылает его остальным валидаторам (раунд предложения блока). Затем все авторитеты также пересылают полученный блок друг другу (раунд подтверждения блока). Если все приняли один и тот же блок, он включается в Qb. Блок, поступивший не от текущего лидера, отклоняется. Ожидается, что каждый лидер всегда выпускает блок (при отсутствии транзакций — пустой).
Если авторитеты не согласны по поводу блока во время подтверждения, инициируется голосование о корректности действий текущего лидера. Если он признан злонамеренным (например, не выпустил блок, предложил несколько блоков вместо одного или отправил разные блоки разным участникам), его исключают из пула валидаторов посредством смарт-контракта при поддержке большинства голосов. Все предложенные этим лидером блоки удаляются. Такое поведение может быть вызвано, как техническими сбоями, так и умышленными действиями (византийскими ошибками).
Пример: пусть в сети 5 участников: A, B, C, D, E. В каждом шаге они последовательно подписывают блоки:
- Шаг 1: A подписывает блок
- Шаг 2: B подписывает блок
- Шаг 3: C подписывает блок
- Шаг 4: D подписывает блок
- Шаг 5: E подписывает блок
Цикл повторяется. Если, например, C попытается подписать блок сразу после A (в обход очереди), такой блок отклоняется. Если B пропустил свой ход (не выпустил блок в отведённое время), следующий лидер (например, C) может взять инициативу. Небольшие отклонения по времени допускаются для предотвращения «зависания» сети.
Clique — это реализация алгоритма Proof-of-Authority в клиенте Geth. Применяется для тестовых сетей Ethereum Goerli и Rinkeby[4].
В отличие от Aura, Clique определяет актуальный шаг и лидера по формуле, связывающей номер блока и число валидаторов. Помимо текущего лидера, другие валидаторы могут предлагать блоки, но каждая авторитет может делать это не чаще одного раза на N/2 + 1 блоков, чтобы избегать доминирования одного валидатора. Если какой-либо валидатор действует злонамеренно, он также удаляется из пула.
PoA в частных блокчейнах
Доказательство полномочий особенно эффективно для частных блокчейнов, например, банковских сетей, где каждый участник выступает собственным валидатором. Достижение консенсуса при большинстве подтверждённых голосов обеспечивает высокую надёжность и эффективность валидации транзакций.
Сравнение PoA, PoW и PoS
| Протокол | Преимущества | Недостатки | Безопасность | Применение |
|---|---|---|---|---|
| Доказательство полномочий | Ускоряет подтверждение транзакций, служит платформой для децентрализованных приложений. | Децентрализация отсутствует; информация о валидаторах доступна всем; угрозы репутации не всегда эффективно предотвращают злоупотребления. | Защита от DDoS и атак «51%» в определённых пределах. | Aura, Clique |
| Доказательство выполнения работы (PoW) | Быстрый консенсус, устойчивость от спама, высокая степень тестирования. | Очень высокий расход энергии и ресурсов, зависимость от «железа» ведёт к централизации майнинга. | Открыт для атаки «51%», майнинга selfish mining и eclipse-атак. | Bitcoin, Ethereum |
| Доказательство доли владения (PoS) | Уменьшенное энергопотребление, удобство, экологичность. | Владельцы крупных долей могут контролировать сеть. | Хотя защищён от атаки «51%», уязвим к атакам на длинных цепях (long-range attacks). | Ethereum 2.0, Peercoin |
Безопасность PoA и атаки
Считается, что PoA гораздо менее подвержен атакам, чем PoW, так как здесь злоумышленнику недостаточно получить 51% вычислительной мощности. Для успешной атаки нужно контролировать 51% всех валидаторов, что намного сложнее организации технической атаки на PoW-сеть. Даже если в PoW-типе можно нарастить собственную вычислительную мощность, в PoA это не даёт преимущества — важна только легитимность и число авторитетов. Узлы проходят предварительную верификацию, а в случае проблем могут быть быстро запрещены решением других валидаторов. Целенаправленная отправка большого числа транзакций или блоков на адрес одного валидатора с целью перегрузки также менее эффективна[6].
Технология PoA позволяет защищаться от атак типа отказ в обслуживании (DoS): только верифицированные валидаторы получают полномочия создавать блоки, и их активность регулярно контролируется. Если валидатор становится недоступен в течение длительного времени, он может быть исключён из пула.
Примечания
- ↑ Public versus Private Blockchains (англ.), Bitfury. Архивировано 10 марта 2016 года. Дата обращения: 23 июня 2024.
- ↑ Proof of Authority (исп.), Binance Academy. Архивировано 20 июня 2025 года. Дата обращения: 23 июня 2024.
- ↑ PBFT vs Proof-of-Authority: Applying the CAP Theorem to Permissioned Blockchain (англ.), CEUR Workshop Proceedings. Архивировано 18 мая 2025 года. Дата обращения: 23 июня 2024.
- ↑ Clique PoA protocol (англ.), GitHub. Архивировано 8 июня 2025 года. Дата обращения: 23 июня 2024.
- ↑ Table 1. A Research Survey on Applications of Consensus Protocols in Blockchain (англ.), Hindawi. Архивировано 10 мая 2022 года. Дата обращения: 23 июня 2024.
- ↑ A Research Survey on Applications of Consensus Protocols in Blockchain (англ.), Hindawi. Архивировано 22 апреля 2024 года. Дата обращения: 23 июня 2024.