Перейти до основного контенту
Change page

Доказ повноважень (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 для створення нових блоків вибирається набір авторизованих підписувачів. Підписувачі вибираються на основі їхньої репутації, і тільки вони мають право створювати нові блоки. Підписувачі вибираються за циклічним принципом (round-robin), і кожен підписувач може створити блок у певному часовому проміжку. Час створення блоку є фіксованим, і підписувачі повинні створити блок протягом цього часового проміжку.

Репутація в цьому контексті — це не кількісно вимірювана річ, а скоріше репутація відомих корпорацій, таких як Microsoft і Google. Отже, спосіб вибору довірених підписувачів не є алгоритмічним, а є звичайним людським актом довіри, коли суб'єкт, скажімо, наприклад, Microsoft, створює приватну мережу PoA між сотнями або тисячами стартапів і сам виступає в ролі єдиного довіреного підписувача з можливістю додавання в майбутньому інших відомих підписувачів, таких як Google. Стартапи, без сумніву, довірятимуть Microsoft, що вона завжди діятиме чесно, і використовуватимуть мережу. Це вирішує потребу в стейкінгу в різних невеликих/приватних мережах, які були створені для різних цілей, щоб підтримувати їхню децентралізацію та функціонування, а також потребу в майнерах, що споживає багато енергії та ресурсів. Деякі приватні мережі використовують стандарт PoA, як-от VeChain, а деякі модифікують його, як-от 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 секунди, оскільки для валідації нових блоків потрібна лише обмежена кількість підписувачівЗловмисні підписувачі можуть здійснювати реорганізацію, подвійні витрати, цензурувати транзакції в мережі; ці атаки пом’якшені, але все ще можливі

Для подальшого читання

Цікавить наочний матеріал? Для тих, хто навчається візуально

Перегляньте візуальне пояснення доказу повноважень:

Чи була ця стаття корисною?