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

Доказ авторитету (PoA)

Доказ авторитету (PoA) — це алгоритм консенсусу на основі репутації, який є модифікованою версією доказу частки (PoS). Він здебільшого використовується приватними ланцюгами, тестовими мережами та локальними мережами для розробки. PoA — це алгоритм консенсусу на основі репутації, який вимагає довіри до набору авторизованих підписантів для створення блоків, замість механізму на основі стейку в PoS.

Передумови

Щоб краще зрозуміти цю сторінку, ми рекомендуємо спочатку прочитати про транзакції, блоки та механізми консенсусу.

Що таке доказ авторитету (PoA)?

Доказ авторитету (PoA) — це модифікована версія доказу частки (PoS), яка є алгоритмом консенсусу на основі репутації замість механізму на основі стейку в PoS. Цей термін вперше запровадив у 2017 році Гевін Вуд, і цей алгоритм консенсусу здебільшого використовується приватними ланцюгами, тестовими мережами та локальними мережами для розробки, оскільки він усуває потребу у високоякісних ресурсах, як це робить доказ виконання роботи (PoW), і вирішує проблеми масштабованості PoS завдяки тому, що невелика підмножина вузлів зберігає блокчейн і створює блоки.

Доказ авторитету вимагає довіри до набору авторизованих підписантів, які встановлюються в . У більшості сучасних реалізацій усі авторизовані підписанти зберігають рівні повноваження та привілеї під час визначення консенсусу ланцюга. Ідея стейкінгу репутації полягає в тому, що кожен авторизований валідатор добре відомий усім завдяки таким процедурам, як «знай свого клієнта» (KYC), або завдяки тому, що єдиним валідатором є добре відома організація — таким чином, якщо валідатор зробить щось не так, його особа буде відома.

Існує кілька реалізацій PoA, але стандартною реалізацією в Етеріумі є 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 блок із 6, то в будь-який момент часу 5 валідаторів можуть створювати блоки. Щоб запобігти їхній гонці за створення блоків, кожен підписант додає невелике випадкове «зміщення» до часу випуску нового блоку. Це зменшує частоту виникнення невеликих форків, але все ще допускає випадкові форки, як це спостерігається в головній мережі Ethereum. Якщо підписант зловживає своїми повноваженнями та спричиняє збої, його можуть виключити з мережі шляхом голосування.

Переваги та недоліки

ПеревагиНедоліки
Масштабується краще, ніж інші популярні механізми, такі як PoS та PoW, оскільки базується на обмеженій кількості підписантів блоківМережі PoA зазвичай мають відносно невелику кількість вузлів-валідаторів. Це робить мережу PoA більш централізованою.
Блокчейни PoA неймовірно дешеві в запуску та обслуговуванніСтати авторизованим підписантом зазвичай недосяжно для звичайної людини, оскільки блокчейн вимагає організацій із усталеною репутацією.
Транзакції підтверджуються дуже швидко, це може займати менше 1 секунди, оскільки для валідації нових блоків потрібна лише обмежена кількість підписантівЗловмисні підписанти можуть здійснювати реорганізацію, подвійну витрату, цензурувати транзакції в мережі; ці атаки пом'якшені, але все ще можливі

Додаткова література

Краще сприймаєте візуально?

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

Cryptoeconomics: proof of authority

A cryptoeconomics lecture explaining the proof-of-authority (PoA) consensus mechanism, covering how it works, its trade-offs compared to proof of work and proof of stake, and where it is used in practice.

Дивитися з транскриптом