Що таке слешинг?
Багато хто знає, що блокчейни Proof-of-Stake заохочують своїх валідаторів. Але мало хто знає, як їх карають. У цій статті розберемося з поняттям слешингу та його ефективністю.
Слешинг — це механізм покарання валідаторів, дії яких суперечать правилам роботи блокчейну. Він є одним із компонентів консенсусу, що призначений для стримування, а не заохочення.
Розробники прагнуть або унеможливити шахрайство з боку валідатора, або зробити його невигідним. Реалізація такого підходу залежить від типу консенсусу:
Валідатори зберігають історію та підтверджують транзакції, додають їх у блоки, а також виконують інші дії, що спрямовані на забезпечення роботи мережі. В обмін на свої зусилля, час та обчислювальну потужність вони отримують нові монети.
У блокчейні постійно виконуються операції. Будь-яка затримка або збій у консенсусі можуть спричинити зупинку або інші негативні наслідки. Тому валідаторам необхідний не лише стимул, а й покарання, яке стримуватиме від неправомірних дій.
Очевидно, що не кожен може відповідати цим критеріям, і навіть технічно розгорнути власний вузол-валидатор. Тому у PoS є ще одна роль — делегатор. Це користувач, який делегує свої токени валідатору для участі в консенсусі.
Такий підхід зменшує поріг входу у стейкінг, а також сприяє децентралізації мережі. Хоча делегатор не може безпосередньо брати участь у консенсусі, йому стає доступною можливість участі у голосуваннях.
Делегатор має обрати добросовісного валідатора, оскільки у разі слешингу покараний буде і делегатор.
Наслідками слешингу може бути не лише втрата статусу валідатора, а й заблокованих для роботи токенів. Штраф залежить від причин слешингу, а також інших факторів, які є індивідуальними для кожної окремої мережі.
Простій валідатора переважно спричиняє відрахування певної кількості токенів. Тоді як подвійний підпис загрожує валідатору втратою більшої частини заблокованих активів або відстороненням від участі у консенсусі.
За умови виявлення якоїсь із цих дій до валідатора застосовується слешинг. У такому разі 1/32 частина його стейкінгу спалюється (максимум 1 ETH), після чого починається 36-денний період відсторонення від участі в консенсусі.
На 18-й день після застосування слешингу валідатор сплачує штраф. Його сума залежить від загальної кількості застейканих ETH у всіх валідаторів, до яких був застосований слешинг упродовж останніх 36 днів. Очевидно, що зі збільшенням кількості таких валідаторів розмір штрафу також зростає.
Цей штраф називається кореляційним і визначається так:
Розглянемо приклад, у якому валідатор із сумою стейкінгу 32 ETH підписав два блоки для одного і того самого слота 1 лютого 2024 року.
До нього застосовується слешинг і він втрачає 1 ETH. Через 18 днів з'ясовується, що протягом 36-денного періоду (за 18 днів до і 18 днів після застосування слешингу) в мережі ETH було виявлено 10 таких самих недобросовісних валідаторів. Отже, сума штрафу буде більшою, ніж у ситуації, де таких валідаторів було б 5.
Щоб досягти консенсусу щодо стану блокчейну, ⅔ всіх валідаторів повинні узгодити вихідну (останній блок попередньої епохи) та цільову (перший блок поточної епохи) точки. Якщо понад ⅓ валідаторів проявлять бездіяльність, то решта не зможе “домовитися”.
За допомогою витоку бездіяльності стейк неактивних валідаторів поступово зменшується. Це відбувається, доки загальна кількість таких валідаторів не стане меншою ⅓ від загального стейку всіх учасників консенсусу.
Від моменту запуску Beacon Chain (компонент Ethereum, який відповідає за Proof-of-Stake) 1 грудня 2020 року і до 15 лютого 2024-го слешинг був застосований 414 разів. Зважаючи на те, що кількість активних валідаторів у мережі становить 940 398, зі слешингом стикнулися лише 0,04% із них.
Алгоритм консенсусу Proof-of-Stake
За допомогою Proof-of-Stake вузли-валідатори доходять згоди щодо стану блокчейну. Це дозволяє мережі бути децентралізованою та убезпечує. Слешинг є унікальним явищем, яке характерне саме для PoS-блокчейнів.
Розробники прагнуть або унеможливити шахрайство з боку валідатора, або зробити його невигідним. Реалізація такого підходу залежить від типу консенсусу:
- у Proof-of-Work — за допомогою особливої вимогливості до обчислювальної потужності;
- у Proof-of-Stake — за допомогою слешингу.
Валідатори зберігають історію та підтверджують транзакції, додають їх у блоки, а також виконують інші дії, що спрямовані на забезпечення роботи мережі. В обмін на свої зусилля, час та обчислювальну потужність вони отримують нові монети.
У блокчейні постійно виконуються операції. Будь-яка затримка або збій у консенсусі можуть спричинити зупинку або інші негативні наслідки. Тому валідаторам необхідний не лише стимул, а й покарання, яке стримуватиме від неправомірних дій.
Стейкінг
Стейкінг — це блокування в мережі певної кількості токенів для отримання доступу до участі в консенсусі. У такий спосіб валідатор підтверджує намір проводити лише законну активність. У разі неправомірних дій до цих токенів буде застосовано слешинг.
Роль стейкінгу та принцип роботи PoS. Джерело: shiksha.com
Кожна мережа самостійно встановлює мінімальну суму токенів, які необхідно заблокувати, щоб стати валідатором, наприклад:
- BNB Smart Chain — 10 000 BNB;
- Solana — 0,01 SOL;
- Ethereum — 32 ETH.
Очевидно, що не кожен може відповідати цим критеріям, і навіть технічно розгорнути власний вузол-валидатор. Тому у PoS є ще одна роль — делегатор. Це користувач, який делегує свої токени валідатору для участі в консенсусі.
Такий підхід зменшує поріг входу у стейкінг, а також сприяє децентралізації мережі. Хоча делегатор не може безпосередньо брати участь у консенсусі, йому стає доступною можливість участі у голосуваннях.
Делегатор має обрати добросовісного валідатора, оскільки у разі слешингу покараний буде і делегатор.
Причини та наслідки слешингу
Причини слешингу в різних блокчейнах відрізняються, проте найбільш часто повторюються такі:
- Простій валідатора. Якщо вузол-валідатор не бере участі у процесі консенсусу протягом певного часу, мережа сприймає це як ознаку його ненадійності. Тому за подібні дії до валідатора застосовується слешинг.
- Подвійний підпис. Щоб уникнути слешингу за простій, валідатори запускають ідентичну резервну установку, яка може брати участь у консенсусі, якщо основний вузол вийшов з ладу. Однак це створює ризик подвійного підпису, коли ідентичний ключ валідатора підписує блок двічі.
Наслідками слешингу може бути не лише втрата статусу валідатора, а й заблокованих для роботи токенів. Штраф залежить від причин слешингу, а також інших факторів, які є індивідуальними для кожної окремої мережі.
Простій валідатора переважно спричиняє відрахування певної кількості токенів. Тоді як подвійний підпис загрожує валідатору втратою більшої частини заблокованих активів або відстороненням від участі у консенсусі.
Слешинг у Ethereum
У вересні 2022 року Ethereum повністю перейшов на алгоритм консенсусу Proof-of-Stake. У його мережі можуть скластися три ситуації, за яких до валідатора буде застосовано слешинг:
- пропозиція та підписання двох блоків для одного і того самого слота (періоду часу для пропозиції блоку — 12 секунд);
- голосування за вихідну (останній блок попередньої епохи) та цільову (перший блок поточної епохи) контрольні точки, за яких точки однієї атестації перебувають всередині або оточують точки іншої;
- голосування за 2 цільові контрольні точки в одній епосі.
За умови виявлення якоїсь із цих дій до валідатора застосовується слешинг. У такому разі 1/32 частина його стейкінгу спалюється (максимум 1 ETH), після чого починається 36-денний період відсторонення від участі в консенсусі.
Життєвий цикл валідатора Ethereum. Джерело: attestant.io
Протягом цього часу заблоковані токени валідатора поступово зникають. Він не тільки позбавляється винагороди, але й отримує штраф у розмірі близько 8000 Gwei (0,000008 ETH) за кожну пропущену епоху (приблизно 6,4 хвилини). Зрештою, втрачає близько 0,07 ETH.
На 18-й день після застосування слешингу валідатор сплачує штраф. Його сума залежить від загальної кількості застейканих ETH у всіх валідаторів, до яких був застосований слешинг упродовж останніх 36 днів. Очевидно, що зі збільшенням кількості таких валідаторів розмір штрафу також зростає.
Цей штраф називається кореляційним і визначається так:
- Розраховується сума ефективних балансів (баланс на момент слешингу) всіх валідаторів, до яких було застосовано слешинг упродовж 36 днів.
- Ця сума помножується на параметр PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX (значення якого дорівнює 3) та обмежується загальним балансом стейка всіх валідаторів Ethereum.
- Ефективний баланс недобросовісного валідатора помножується на результат з пункту №2.
- Результат із пункту №3 ділять на загальний баланс стейка всіх валідаторів Ethereum.
Розглянемо приклад, у якому валідатор із сумою стейкінгу 32 ETH підписав два блоки для одного і того самого слота 1 лютого 2024 року.
До нього застосовується слешинг і він втрачає 1 ETH. Через 18 днів з'ясовується, що протягом 36-денного періоду (за 18 днів до і 18 днів після застосування слешингу) в мережі ETH було виявлено 10 таких самих недобросовісних валідаторів. Отже, сума штрафу буде більшою, ніж у ситуації, де таких валідаторів було б 5.
Витік бездіяльності
Якщо консенсус не завершується протягом чотирьох епох, у мережі активується протокол витоку бездіяльності.
Щоб досягти консенсусу щодо стану блокчейну, ⅔ всіх валідаторів повинні узгодити вихідну (останній блок попередньої епохи) та цільову (перший блок поточної епохи) точки. Якщо понад ⅓ валідаторів проявлять бездіяльність, то решта не зможе “домовитися”.
За допомогою витоку бездіяльності стейк неактивних валідаторів поступово зменшується. Це відбувається, доки загальна кількість таких валідаторів не стане меншою ⅓ від загального стейку всіх учасників консенсусу.
Частка втрати стейку протягом витоку бездіяльності. Джерело: github.com
Тому, хай який великий буде пул неактивних валідаторів, зрештою вони контролюватимуть менше ⅓ всього стеку, що дозволить решті валідаторів продовжити консенсус.
Висновок
Слешинг — це ефективний спосіб протидії порушенням з боку валідаторів. Він допомагає убезпечити мережу від навмисних і ненавмисних дій. Його ефективність підтверджена статистикою.
Від моменту запуску Beacon Chain (компонент Ethereum, який відповідає за Proof-of-Stake) 1 грудня 2020 року і до 15 лютого 2024-го слешинг був застосований 414 разів. Зважаючи на те, що кількість активних валідаторів у мережі становить 940 398, зі слешингом стикнулися лише 0,04% із них.