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

Останнє оновлення сторінки: 25 січня 2024 р.

Вступ до керування Ethereum

Якщо ніхто не є власником Ethereum, то як приймаються рішення щодо минулих і майбутніх змін в Ethereum? Керування Ethereum — це процес, який дає змогу приймати подібні рішення.

У чому полягає керування?

Керування — це наявні системи, які дають змогу приймати рішення. У типовій організаційній структурі остаточні рішення можуть прийматися командою керівників або радою директорів. Інколи за пропозиції щодо внесення змін голосують акціонери. У політичній системі обрані чиновники можуть приймати закони, намагаючись задовольнити бажання виборців.

Децентралізоване керування

Ніхто не володіє протоколом Ethereum і не контролює його, але необхідно приймати рішення щодо впровадження змін, спрямованих на забезпечення функціонування та процвітання мережі. Відсутність власності робить традиційне організаційне керування в такому разі неможливим.

Керування Ethereum

Керування Ethereum — це процес, під час якого до протоколу вносяться зміни. Важливо зазначити, що він не залежить від того, як люди та програми використовують протокол, адже в Ethereum немає дозволів. Будь-хто з будь-якої точки світу може брати участь у діяльності мережі. Не встановлено жодних правил щодо того, хто може та хто не може створювати програми або надсилати транзакції. Проте існує процес пропонування змін до основного протоколу, на якому працюють децентралізовані програми. Оскільки від стабільності Ethereum залежить дуже багато людей, існує дуже високий поріг координації для базових змін, включно із соціальними й технічними процесами, аби гарантувати, що зміни, внесені в Ethereum, безпечні та підтримуються спільнотою.

Керування в межах ланцюга та поза ним

Технологія блокчейн дає змогу впровадити нові методи керування, зокрема спосіб керування в межах ланцюга. Керування в межах ланцюга передбачає схвалення запропонованих змін протоколу в ході голосування зацікавлених сторін — зазвичай власників токенів керування. Голосування відбувається безпосередньо на блокчейні. У випадку деяких форм керування в межах ланцюга запропоновані зміни протоколу вже записано в коді, і вони автоматично реалізуються, якщо зацікавлені сторони схвалюють зміни шляхом підписання транзакції.

За іншого підходу — керування поза ланцюгом — рішення щодо будь-яких змін до протоколу приймаються в ході неофіційної дискусії. Якщо зміну буде погоджено, її внесуть у код.

В Ethereum керування відбувається поза ланцюгом з участю широкого кола зацікавлених осіб.

Хоча на рівні протоколу керування Ethereum відбувається поза ланцюгом, для багатьох варіантів користування, побудованих на основі Ethereum, як-от DAO, застосовується керування в межах ланцюга.

Докладніше про DAO

Хто бере участь?

У спільноті Ethereum присутні різні зацікавлені особи, кожна з яких бере участь у процесі керування. Нижче наведено перелік категорій зацікавлених осіб, починаючи з найвіддаленіших від протоколу.

  • Власники Ether, тобто особи, що володіють будь-якою кількістю ETH. Докладніше про ETH.
  • Користувачі програм, тобто особи, що взаємодіють із програмами в блокчейні Ethereum.
  • Розробники програм та інструментів, тобто особи, що пишуть програми, запущені на блокчейні Ethereum (DeFi, NFTs тощо), або створюють інструменти для взаємодії з Ethereum (гаманці, тестові набори тощо). Докладніше про децентралізовані програми.
  • Оператори вузлів, тобто особи, що запускають вузли, які збільшують кількість блоків і швидкість транзакцій, скасовують недійсні транзакції та блоки, з якими ті зіштовхуються. Докладніше про вузли.
  • Автори EIP, тобто особи, які пропонують зміни до протоколу Ethereum у вигляді пропозицій щодо покращення Ethereum (Ethereum Improvement Proposals, EIP). Докладніше про EIP.
  • Валідатори, тобто особи, які запускають вузли, що можуть додавати нові блоки в блокчейн Ethereum.
  • Розробники протоколу (основні розробники), тобто особи, які виконують різноманітні реалізації в Ethereum (go-ethereum, Nethermind, Besu, Erigon на рівні виконання та Prysm, Lighthouse, Nimbus, Teku, Lodestar на рівні консенсусу). Докладніше про клієнтів Ethereum.

Примітка. Будь-хто може належати до кількох із цих категорій (наприклад, бути водночас розробником протоколів, автором EIP, валідатором ланцюгів маяків і користуватися програмами DeFi). Але для ясності їх простіше розрізняти.

Що таке EIP?

Одним із важливих процесів у керуванні Ethereum є подання пропозицій щодо покращення Ethereum (Ethereum Improvement Proposals, EIP). EIP — це стандарти, які визначають потенційні нові функції або процеси для Ethereum. Будь-хто в спільноті Ethereum може створювати EIP. Якщо ви зацікавлені в написанні EIP або участі в оцінці та/або управлінні, ознайомтеся з інформацією за посиланням нижче.

Докладніше про EIP

Офіційний процес

Нижче описано офіційний процес внесення змін до протоколу Ethereum.

  1. Подання основної пропозиції EIP. Згідно з EIP-1(opens in a new tab), щоб офіційно запропонувати зміну в Ethereum, спочатку потрібно її детально описати в основній пропозиції EIP. Вона стане офіційною специфікацією EIP, яку буде впроваджено розробниками протоколу в разі прийняття.

  2. Подання EIP розробникам протоколу. Коли буде готова основна пропозиція EIP, щодо якої буде зібрано думку спільноти, її потрібно подати розробникам протоколу. Для цього її можна подати на обговорення під час дзвінка AllCoreDevs(opens in a new tab). Імовірно, деякі обговорення вже будуть проведені незалежно одне від одного на форумі Ethereum Magiciian(opens in a new tab) або Ethereum&D Discord(opens in a new tab).

Можливі результати цього етапу:

  • Пропозиція EIP буде погоджена для виконання за майбутнього оновлення мережі.
  • Будуть запропоновані технічні зміни.
  • Пропозицію може бути відхилено, якщо вона не є пріоритетною або достатньо вагомою для розвитку протоколу.
  1. Повторне подання остаточної пропозиції. Після отримання відгуків від усіх відповідних зацікавлених осіб вам можливо доведеться внести зміни до початкової пропозиції для підвищення її безпеки або можливості задовольнити потреби різних користувачів. Щойно в пропозицію EIP буде внесено всі правки, які ви вважаєте необхідними, потрібно ще раз надати її розробникам протоколу. Потім ви перейдете до наступного етапу, якщо не виникнуть нові питання, які вимагатимуть ще одного внесення правок.

  2. Включення EIP в мережеве оновлення. Якщо пропозицію EIP затверджено, випробувано та впроваджено, її буде заплановано в рамках оновлення мережі. Враховуючи високі витрати на координацію оновлення мережі (усі повинні оновитись одночасно), пропозиції EIP зазвичай об’єднують у пакети оновлень.

  3. Активація оновлення мережі. Після активації оновлення EIP буде впроваджено в мережі Ethereum. Примітка. Оновлення зазвичай активуються в тестових мережах, а потім уже в основній мережі Ethereum Mainnet.

Це дуже спрощений алгоритм дій, який дає загальне уявлення про основні етапи активації зміни протоколу в Ethereum. Тепер розгляньмо неофіційні фактори, які можуть впливати на хід цього процесу.

Неофіційний процес

Розуміння попередньої роботи

Користувачі, які подають пропозиції EIP, повинні ознайомитися з попередньою роботою та пропозиціями перед створенням нової EIP, що розглядатиметься для впровадження в основній мережі Ethereum Mainnet. Таким чином в EIP буде запропоновано щось дійсно нове, що раніше не відхилялося. Три основні ресурси для дослідження: репозиторій EIP(opens in a new tab), спільнота Ethereum Magicians(opens in a new tab) і ethresear.ch(opens in a new tab).

Робочі групи

Початковий варіант EIP навряд чи буде впроваджено в основній мережі Ethereum Mainnet без редагування та правок. Користувачі, які подають EIP, зазвичай співпрацюють із підгрупою розробників протоколу для конкретизації, впровадження, випробування, виправлення та завершення пропозиції. Раніше це тривало кілька місяців (а іноді й років!). Так само користувачі, які подають EIP, для впровадження таких змін мають залучати й відповідних розробників програм та інструментів на початку процесу, щоб отримати відгуки кінцевих користувачів і усунути можливі ризики під час розгортання оновлення.

Консенсус спільноти

Деякі EIP — це прості технічні вдосконалення з мінімальними нюансами, а інші є складнішими й супроводжуються компромісами, які будуть впливати на різні зацікавлені сторони по-різному. Це означає, що деякі EIP викликають більше дискусій у спільноті, ніж інші.

Немає чітких вказівок щодо роботи із суперечливими пропозиціями. Це є результатом децентралізованої організації Ethereum, за якої жодна окрема група зацікавлених сторін не може змусити інших до чогось силою: розробники протоколу можуть відмовитися від втілення змін у коді, оператори вузлів можуть не запускати останній клієнт Ethereum, команди програм і користувачі можуть не проводити операції в ланцюзі. Оскільки розробники протоколу не мають можливості змушувати людей приймати оновлення мережі, вони зазвичай уникають упровадження пропозицій EIP, якщо користь від них для широкої спільноти не переважає шкоду від суперечок.

Очікується, що користувачі, які подають EIP, мають надсилати запит на відгуки від усіх відповідних зацікавлених осіб. Якщо ви подали суперечливу пропозицію EIP, спробуйте розглянути заперечення та досягнути консенсусу щодо вашої EIP. Враховуючи розмір і різноманіття спільноти Ethereum, не існує єдиного заходу (наприклад, голосування монетою), яке можна використати для оцінювання консенсусу в спільноті. Тому користувачі, які подають EIP, мають адаптувати свої пропозиції до поточних умов.

Крім безпеки мережі Ethereum, значна увага розробниками протоколу завжди приділялася думці розробників програм та інструментів і користувачів, адже саме використання та розробка Ethereum роблять платформу привабливою для решти зацікавлених осіб. Крім того, усі пропозиції EIP мають бути реалізованими для всіх користувачів, які керуються різними командами. Частково цей процес зазвичай передбачає переконування кількох команд розробників протоколу, що певні зміни є вигідними та допомагають кінцевим користувачам або розв’язують проблему безпеки.

Вирішення суперечок

Наявність багатьох зацікавлених осіб із різними думками та мотиваціями означає часті розбіжності.

Зазвичай розбіжності вирішуються завдяки затяжним дискусіям на загальнодоступних форумах, які дають змогу висловитися кожному та зрозуміти корінь проблеми. У більшості випадків одна група йде на поступки або ж досягають компромісу. Якщо одна група твердо наполягає на своїй позиції, нав’язування певної зміни може призвести до розділення ланцюга. Розділення ланцюга відбувається, коли деякі зацікавлені особи протестують проти впровадження зміни протоколу, і це зумовлює появу різних несумісних його версій, з яких виникають два різних ланцюги блокчейну.

Розгалуження DAO

Розгалуження виникають, коли необхідно внести важливі технічні оновлення або зміни в мережу та змінити «правила» протоколу. Клієнти Ethereum повинні оновити своє програмне забезпечення для впровадження нових правил розгалуження.

Розгалуження DAO з’явилися у відповідь на атаку на DAO у 2016 році(opens in a new tab), коли внаслідок зламу незахищеного контракту

було втрачено понад 3,6 млн ETH. Завдяки розгалуженню вдалося перенести кошти з пошкодженого контракту до нового, що дало змогу кожному, хто втратив кошти під час зламу, повернути їх.

Рішення про впровадження такого заходу було прийнято в результаті голосування, у якому взяла участь спільнота Ethereum. Усі власники ETH могли проголосувати шляхом здійснення транзакції на платформі для голосування(opens in a new tab). Розгалуження підтримали понад 85 % учасників голосування.

Важливо зазначити, що хоча в протоколі й було виконано розгалуження для усунення наслідків зламу, авторитетність відповідного голосування була сумнівною з кількох причин:

  • участь у голосуванні взяло надзвичайно мало користувачів;
  • більшість користувачів не знали про голосування;
  • у голосуванні враховувались інтереси лише власників ETH, але не інших учасників системи.

Частина спільноти відмовилася від розгалуження здебільшого тому, що не вважали інцидент із DAO наслідком дефекту в протоколі. Пізніше вони утворили платформу Ethereum Classic(opens in a new tab).

Сьогодні спільнота Ethereum прийняла політику невтручання в разі помилок контрактів або втрати коштів для підтримки повного нейтралітету системи.

Відео про злам DAO:

Переваги розгалужень

Розгалуження на Ethereum і Ethereum Classic — приклад правильного розгалуження. У нас було дві групи з досить вагомими розбіжностями щодо основних цінностей, для того щоб піти на ризик їх розділення та незалежного розвитку.

Здатність розгалужуватися на тлі значних політичних, філософських чи економічних відмінностей відіграє значну роль в успішному керуванні системою Ethereum. Без цієї здатності тривали б суперечки, на тих ті, хто згодом створив Ethereum Classic, чинився б тиск, а розбіжності в баченні успішного майбутнього для Ethereum все більше б зростали.

Управління Beacon Chain

Процес керування Ethereum часто жертвує швидкістю й ефективністю для відкритості й інклюзивності. Щоб прискорити темпи розвитку оновлення Beacon Chain, його було запущено окремо від мережі Ethereum із доказом роботи й відповідно до окремих процедур керування.

Хоча специфікація та реалізація розробки завжди мали повністю відкритий вихідний код, описані вище формальні процедури пропонування оновлень не використовувалися. Це дало змогу дослідникам і впроваджувачам швидше уточнювати й погоджувати зміни.

Після злиття Beacon Chain з виконавчим рівнем Ethereum 15 вересня 2022 року, оновлення The Merge було завершено як частину оновлення мережі Paris. Статус пропозиції EIP-3675(opens in a new tab) було змінено з готовності до реалізації на фінальне впровадження, завершуючи перехід на доказ володіння.

Докладніше про об’єднання

Як я можу долучитися?

Додаткові ресурси

Процес керування в Ethereum не є чітко визначеним. Різні учасники спільноти мають власні погляди щодо цього. Ви можете ознайомитися з ними нижче.

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