Delegated Proof of Stake (або DPoS) — алгоритм консенсусу, створений розробником Деном Ларімером (Daniel Larimer) 2014 року.Список відомих проєктів, що використовують DPoS:
PoS схожий на пряму демократію, а DPoS — на представницьку. Класичний PoS дозволяє власникам монет займатися "стейкінгом". Тримач монет підтверджує транзакції, отримуючи в нагороду нові монети.
Винагороди в мережі PoS залежать від кількості монет, що належать держателю ("стейкеру"). Що більший стейк, то більша винагорода.
PoS стимулює власників великих сум займатися стейкінгом і утворює нерівність, подібну до розподілу майнінгових потужностей у мережі біткойна: майнер, який більше інвестував в обладнання, отримує більший шанс знаходження блоку.
Delegated Proof of Stake робить розподіл монет і вплив у мережі більш рівномірним і забезпечує більший ступінь децентралізації.
У DPoS-блокчейнах кожен гаманець із монетами на балансі може голосувати за так званих "делегатів" (Delegates, Block Producers, Validators) — спеціальних представників спільноти, які отримали право генерувати блок і отримувати нагороду у вигляді транзакційних комісій.
DPoS стійкий до атаки корумпованої меншості. Якщо делегати шкодять мережі або пішли в офлайн, учасники мережі повторно проводять вибори і призначають нових делегатів, поки кількість чесних блок-продюсерів не повернеться до 100%.
Які функції делегатів у DPoS-блокчейнах?
Повноваження делегатів полягають у налаштуванні основних правил мережі, підтримці стабільної роботи блокчейна і генерації блоків. Вони отримують комісії за транзакції як прибуток. Делегатом може стати кожен учасник мережі, але лише на короткий час.
Мережа платить делегату за генерацію нових блоків і включення в них нових транзакцій. Делегат може за бажанням витрачати ці кошти на маркетинг, лобіювання інтересів спільноти, але не в особистих цілях. Власники монет вирішують, скільки отримає конкретний делегат за свою роботу. Це залежить від правил мережі та репутації делегата. Репутація підкріплюється голосами користувачів, які за допомогою своїх монет у стейку постійно беруть участь у виборах. Один користувач може віддати делегату тільки один голос, але голосувати відразу за кількох кандидатів.
Коли делегатів обрано, кожен із них потрапляє в особливу групу. Люди в цій групі мають доступ до генезис-аккаунта.
Це акаунт із мультипідписом, через який можна змінювати:
- нагороду за блок;
- час генерації блоків;
- розмір блоку;
- розмір винагороди свідкам;
- комісії за транзакції.
Параметри, що перебувають у компетенції делегатів, не повинні змінюватися занадто часто: нестабільність і новизна відлякують новачків та інвесторів. Генезис-аккаунт може виконувати і стандартні функції: використовувати смарт-контракти, отримувати кошти, формувати стейк.
Після прийняття важливих рішень у DPoS-блокчейнах є короткий проміжок часу, протягом якого можна переобрати нових делегатів. Це необхідно, якщо встановлені делегатами правила не затверджені більшістю голосів користувачів.
Можна скоротити або збільшити кількість делегатів, замінити їх, але це не вплине на стійкість мережі.
Як стати Делегатом?
Список активних делегатів оновлюється після підрахунку голосів. Потім система у випадковому порядку вибирає делегатів і ставить їх у чергу. Кожен делегат отримує можливість генерувати блок. Після того як усі делегати скористалися чергою, їхній порядок знову змінюється випадковим чином.
Делегат може не пропустити транзакції в блок, відклавши їхнє підтвердження. Такий підхід вимагає довіри до делегатів і робить саму систему вразливою до маніпуляцій.
Якщо делегат не створив блок або не включив до нього транзакцію, то наступний блок генерується іншим делегатом і буде вдвічі більшим за розміром, щоб включити в себе непідтверджені транзакції. Так усувається зловмисна спроба блокувати або відстрочити генерацію блоків.
У довгостроковій перспективі заблокувати конкретні транзакції неможливо: якщо делегат зловживає повноваженнями, інші учасники мережі мають механізми для його усунення.
Хто такі Свідки?
Користувачі, які займаються стейкінгом і мають шанс тимчасово стати делегатом, називаються свідками (Witness, Witness Node, Validator, Block Producer, тому що вони є свідками транзакцій і одночасно вузлами мережі). DPoS використовує репутаційну систему і голосування в реальному часі для обрання свідків і делегатів.
Свідки генерують і поширюють блоки, підтверджують транзакції, тримають монети в стейку і голосують. На відміну від делегатів, вони не можуть налаштовувати основні правила мережі. Під час підтвердження транзакцій, свідки та делегати не можуть змінювати деталі транзакцій, як-от сума, відправник, одержувач, ID тощо.
Також вони перевіряють:
- вхідні блоки і підписи у транзакцій;
- результати виконання смарт-контракту;
- чи є делегати легітимно обраними;
- поширення транзакцій користувачів.
Кожен повний вузол може надати доступ для читання даних блокчейна, що робить систему схожою на децентралізовану мережу доставки контенту (CDN).
Як працює стейкінг у DPoS?
Усі монети в DPoS-блокчейнах діляться на вільні (що перебувають в обігу) і ті, що в стейкінгу. Кожен сам визначає розмір стейка, і витрачати його не можна. За допомогою таких монет можна стати свідком, голосувати за делегатів і брати участь в управлінні мережею через смарт-контракти.
Які плюси стейкінгу?
- Не потрібно інвестувати в дороге обладнання, щоб добувати нові монети;
- Немає високого енергоспоживання;
- Складність реалізації атаки 51%: атакувальник повинен володіти щонайменше 51% усіх токенів;
- Під час проведення еірдропів деякі проєкти швидше розподіляють монети саме серед стейкерів;
- Стейкінг у DPoS використовується не тільки для заробітку, а й як інструмент впливу на мережу.
Чи є у DPoS суттєві недоліки і які?
- Деанонімізація свідків, оскільки найчастіше це публічні компанії, а не приватні особи.
- Можливість проведення DDoS-атаки на вузли мережі.
- Більшість не мають достатнього стимулу брати участь у голосуваннях, адже їхній стейк занадто малий.
- Небезпека централізації: володар великих ресурсів може переобирати сам себе.
- Голосування гаманцем несе високі фінансові та політичні ризики: ті, хто голосує, швидше візьмуть хабар або зовсім не проголосують.
- Деякі реалізації рекомендують використовувати багатоядерні процесори для валідації, інакше делегат може втратити нагороду за блок.
- Під час стейкінгу монети фіксуються на якийсь час, тож якщо ціна сильно знизиться, ви не продасте монети відразу.
Відомий біткоїн максималіст Нік Сабо висловлював стурбованість з приводу однієї з реалізацій DPoS:
"В EOS кілька незнайомців можуть заморозити те, що користувачі вважають своїми грошима. У межах протоколу вам потрібно довіряти конституційній організації, що складається з людей, яких ви ніколи не впізнаєте особисто. Конституція EOS соціально не масштабована і є дірою в безпеці".
Під час голосування у квітні 2019 року за заміну тимчасової конституції (interim constitution) на користувацьку угоду (EUA) явка склала 1,7%. Рішення довелося ухвалювати блок-продюсерам, що викликало звинувачення в централізації та сирості деяких реалізацій DPoS.