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

Атака та захист доказу частки (PoS) в Етеріумі

Редагувати сторінку (opens in a new tab)

Зловмисники та саботажники постійно шукають можливості для атаки на клієнтське програмне забезпечення Етеріуму. На цій сторінці описані відомі вектори атак на рівень консенсусу Етеріуму та способи захисту від них. Інформація на цій сторінці адаптована з більш розгорнутої версії (opens in a new tab).

Передумови

Необхідні базові знання про доказ частки (PoS). Також буде корисно мати базове розуміння рівня стимулів Етеріуму та алгоритму вибору форка LMD-GHOST.

Чого хочуть зловмисники?

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

«Реорганізація» — це перетасування блоків у новому порядку, можливо, з додаванням або вилученням блоків у канонічному ланцюзі. Зловмисна реорганізація може гарантувати включення або виключення певних блоків, що дозволяє здійснити подвійну витрату або вилучення цінності шляхом випередження та бекраннінгу транзакцій (MEV). Реорганізації також можуть використовуватися для запобігання включенню певних транзакцій до канонічного ланцюга — це форма цензури. Найбільш екстремальною формою реорганізації є «скасування фінальності», яке видаляє або замінює блоки, що були попередньо фіналізовані. Це можливо лише в тому випадку, якщо зловмисник знищить понад ⅓ від загальної кількості застейканого етеру — ця гарантія відома як «економічна фінальність» — детальніше про це пізніше.

Подвійна фінальність — це малоймовірний, але серйозний стан, коли два форки можуть фіналізуватися одночасно, створюючи постійний розкол у ланцюзі. Теоретично це можливо для зловмисника, який готовий ризикнути 34% від загальної кількості застейканого етеру. Спільнота була б змушена координуватися позамережево та дійти згоди щодо того, за яким ланцюгом слідувати, що вимагало б сили на соціальному рівні.

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

Атака на соціальний рівень може мати на меті підірвати суспільну довіру до Етеріуму, знецінити етер, зменшити рівень впровадження або послабити спільноту Етеріуму, щоб ускладнити позамережеву координацію.

З'ясувавши, чому зловмисник може атакувати Етеріум, у наступних розділах ми розглянемо, як він може це зробити.

Методи атаки

Атаки на рівень 0

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

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

  • Цілеспрямовані атаки та/або залякування, спрямовані на спільноту розробників. Це може призвести до добровільного виходу розробників і сповільнити прогрес Етеріуму.

  • Надмірне регулювання також можна вважати атакою на рівень 0, оскільки воно може швидко знизити стимули до участі та впровадження.

  • Проникнення обізнаних, але зловмисних суб'єктів у спільноту розробників, метою яких є уповільнення прогресу шляхом затягування дискусій (bike-shedding), відкладання ключових рішень, створення спаму тощо.

  • Хабарі ключовим гравцям в екосистемі Етеріуму для впливу на прийняття рішень.

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

Захист від атак на рівень 0, ймовірно, не є простим, але можна встановити деякі базові принципи. Одним із них є підтримання загального високого співвідношення сигнал/шум для публічної інформації про Етеріум, яка створюється та поширюється чесними членами спільноти через блоги, сервери Discord, анотовані специфікації, книги, подкасти та YouTube. Тут, на ethereum.org, ми докладаємо всіх зусиль, щоб підтримувати точну інформацію та перекладати її якомога більшою кількістю мов. Наповнення простору високоякісною інформацією та мемами є ефективним захистом від дезінформації.

Ще одним важливим укріпленням проти атак на соціальний рівень є чітке формулювання місії та протокол управління. Етеріум позиціонує себе як лідер з децентралізації та безпеки серед смарт-контрактів рівня 1 (l1), водночас високо цінуючи масштабованість та стійкість. Які б розбіжності не виникали у спільноті Етеріуму, ці основні принципи залишаються мінімально скомпрометованими. Оцінка наративу на відповідність цим основним принципам та їх розгляд через послідовні раунди перевірки в процесі EIP (Пропозиція щодо покращення Етеріуму) може допомогти спільноті відрізнити хороших суб'єктів від поганих і обмежує можливості зловмисників впливати на майбутній напрямок розвитку Етеріуму.

Нарешті, критично важливо, щоб спільнота Етеріуму залишалася відкритою та привітною для всіх учасників. Спільнота з гейткіперами та ексклюзивністю особливо вразлива до соціальних атак, оскільки в ній легко створювати наративи «ми і вони». Трайбалізм і токсичний максималізм шкодять спільноті та руйнують безпеку рівня 0. Етеріанці, які зацікавлені в безпеці мережі, повинні розглядати свою поведінку в Інтернеті та в реальному житті як прямий внесок у безпеку рівня 0 Етеріуму.

Атака на протокол

Будь-хто може запустити клієнтське програмне забезпечення Етеріуму. Щоб додати валідатор до клієнта, користувач повинен застейкати 32 етери в депозитний контракт. Валідатор дозволяє користувачеві брати активну участь у забезпеченні безпеки мережі Етеріуму, пропонуючи та атестуючи нові блоки. Тепер валідатор має голос, який він може використовувати для впливу на майбутній вміст блокчейну — він може робити це чесно і збільшувати свої запаси етеру за рахунок винагород, або ж може спробувати маніпулювати процесом на власну користь, ризикуючи своїм стейком. Один із способів здійснити атаку — накопичити більшу частку від загального стейку, а потім використати її, щоб переголосувати чесних валідаторів. Чим більша частка стейку контролюється зловмисником, тим більша його сила голосу, особливо на певних економічних етапах, які ми розглянемо пізніше. Однак більшість зловмисників не зможуть накопичити достатньо етеру для атаки таким чином, тому замість цього їм доводиться використовувати тонкі методи, щоб змусити чесну більшість діяти певним чином.

По суті, всі атаки з невеликим стейком є тонкими варіаціями двох типів неправильної поведінки валідатора: недостатня активність (нездатність атестувати/запропонувати або запізнення з цим) або надмірна активність (пропонування/атестація занадто багато разів у слоті). У своїх найпростіших формах ці дії легко обробляються алгоритмом вибору форка та рівнем стимулів, але існують розумні способи обіграти систему на користь зловмисника.

Атаки з використанням невеликих сум ETH

Реорганізації

У кількох статтях пояснюються атаки на Етеріум, які досягають реорганізацій або затримки фінальності лише з невеликою часткою від загальної кількості застейканого етеру. Ці атаки зазвичай покладаються на те, що зловмисник приховує певну інформацію від інших валідаторів, а потім випускає її певним нюансованим чином та/або у відповідний момент. Зазвичай вони мають на меті витіснити деякі чесні блоки з канонічного ланцюга. Neuder та ін. 2020 (opens in a new tab) показали, як атакуючий валідатор може створити та атестувати блок (B) для певного слота n+1, але утриматися від його поширення на інші вузли в мережі. Замість цього вони утримують цей атестований блок до наступного слота n+2. Чесний валідатор пропонує блок (C) для слота n+2. Майже одночасно зловмисник може випустити свій прихований блок (B) і свої приховані атестації для нього, а також атестувати B як голову ланцюга своїми голосами за слот n+2, фактично заперечуючи існування чесного блоку C. Коли випускається чесний блок D, алгоритм вибору форка бачить, що D, побудований поверх B, є важчим, ніж D, побудований на C. Таким чином, зловмиснику вдалося видалити чесний блок C у слоті n+2 з канонічного ланцюга за допомогою реорганізації ex ante на 1 блок. Зловмисник із 34% (opens in a new tab) стейку має дуже хороші шанси на успіх у цій атаці, як пояснюється у цій замітці (opens in a new tab). Теоретично, однак, цю атаку можна спробувати здійснити з меншими стейками. Neuder та ін. 2020 (opens in a new tab) описали цю атаку, що працює з 30% стейку, але пізніше було показано, що вона життєздатна з 2% від загального стейку (opens in a new tab), а потім знову для одного валідатора (opens in a new tab) з використанням методів балансування, які ми розглянемо в наступному розділі.

ex-ante re-org

Концептуальна схема атаки реорганізації на один блок, описаної вище (адаптовано з https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair (opens in a new tab))

Більш складна атака може розділити набір чесних валідаторів на окремі групи, які мають різні погляди на голову ланцюга. Це відомо як атака балансування. Зловмисник чекає свого шансу запропонувати блок, і коли він настає, він здійснює еквівокацію і пропонує два. Він надсилає один блок половині набору чесних валідаторів, а інший блок — іншій половині. Еквівокація буде виявлена алгоритмом вибору форка, і пропонувач блоку буде підданий слешингу та виключений з мережі, але два блоки все ще існуватимуть і матимуть близько половини набору валідаторів, що атестують кожен форк. Тим часом решта зловмисних валідаторів утримують свої атестації. Потім, вибірково випускаючи атестації на користь того чи іншого форка достатній кількості валідаторів саме під час виконання алгоритму вибору форка, вони схиляють накопичену вагу атестацій на користь того чи іншого форка. Це може тривати нескінченно довго, при цьому атакуючі валідатори підтримують рівномірний розподіл валідаторів між двома форками. Оскільки жоден форк не може залучити супербільшість у 2/3, мережа не зможе фіналізуватися.

Атаки відскоку (bouncing attacks) є подібними. Голоси знову утримуються атакуючими валідаторами. Замість того, щоб випускати голоси для підтримки рівномірного розподілу між двома форками, вони використовують свої голоси у відповідні моменти для обґрунтування контрольних точок, які чергуються між форком A та форком B. Це перекидання обґрунтування між двома форками запобігає появі пар обґрунтованих вихідних і цільових контрольних точок, які можуть бути фіналізовані на будь-якому ланцюзі, зупиняючи фінальність.

The game of reorgs in proof of stake Ethereum

Caspar Schwarz-Schilling presents research on block reorganization attacks in proof of stake Ethereum, covering attack vectors, defense mechanisms, and the protocol-level mitigations in place.

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

Як атаки відскоку, так і атаки балансування покладаються на те, що зловмисник має дуже точний контроль над часом передачі повідомлень у мережі, що малоймовірно. Тим не менш, захист вбудований у протокол у вигляді додаткової ваги, що надається швидким повідомленням порівняно з повільними. Це відомо як підвищення ваги пропонувальника (proposer-weight boosting) (opens in a new tab). Для захисту від атак відскоку алгоритм вибору форка був оновлений таким чином, що остання обґрунтована контрольна точка може переключитися на контрольну точку альтернативного ланцюга лише протягом першої 1/3 слотів у кожній епосі (opens in a new tab). Ця умова не дозволяє зловмиснику зберігати голоси для їх використання пізніше — алгоритм вибору форка просто залишається вірним контрольній точці, яку він вибрав у першій 1/3 епохи, протягом якої проголосувала б більшість чесних валідаторів.

У сукупності ці заходи створюють сценарій, за якого чесний пропонувач блоку випускає свій блок дуже швидко після початку слота, потім настає період ~1/3 слота (4 секунди), коли цей новий блок може змусити алгоритм вибору форка переключитися на інший ланцюг. Після цього ж дедлайну атестації, які надходять від повільних валідаторів, отримують меншу вагу порівняно з тими, що надійшли раніше. Це сильно сприяє швидким пропонувальникам і валідаторам у визначенні голови ланцюга та суттєво знижує ймовірність успішної атаки балансування або відскоку.

Варто зазначити, що підвищення ваги пропонувальника саме по собі захищає лише від «дешевих реорганізацій», тобто тих, які намагається здійснити зловмисник із невеликим стейком. Фактично, саме підвищення ваги пропонувальника може бути обігране більшими стейкхолдерами. Автори цієї публікації (opens in a new tab) описують, як зловмисник із 7% стейку може стратегічно використовувати свої голоси, щоб обдурити чесних валідаторів і змусити їх будувати на своєму форку, реорганізовуючи чесний блок. Ця атака була розроблена з припущенням ідеальних умов затримки, що є дуже малоймовірним. Шанси для зловмисника все ще дуже малі, а більший стейк також означає більше капіталу під ризиком і сильніший економічний стримуючий фактор.

Також була запропонована атака балансування, спеціально націлена на правило LMD (opens in a new tab), яка, як передбачалося, є життєздатною незважаючи на підвищення ваги пропонувальника. Зловмисник створює два конкуруючі ланцюги, здійснюючи еквівокацію своєї пропозиції блоку та поширюючи кожен блок приблизно на половину мережі, встановлюючи приблизний баланс між форками. Потім валідатори, що вступили в змову, здійснюють еквівокацію своїх голосів, розраховуючи час так, щоб половина мережі спочатку отримала їхні голоси за Форк A, а інша половина спочатку отримала їхні голоси за Форк B. Оскільки правило LMD відкидає другу атестацію і зберігає лише першу для кожного валідатора, половина мережі бачить голоси за A і жодного за B, інша половина бачить голоси за B і жодного за A. Автори описують, що правило LMD дає супротивнику «неабияку силу» для здійснення атаки балансування.

Цей вектор атаки LMD був закритий шляхом оновлення алгоритму вибору форка (opens in a new tab) таким чином, що він взагалі відкидає валідаторів, які здійснюють еквівокацію, з розгляду вибору форка. Майбутній вплив валідаторів, які здійснюють еквівокацію, також дисконтується алгоритмом вибору форка. Це запобігає атаці балансування, описаній вище, а також зберігає стійкість до лавинних атак.

Інший клас атак, який називається лавинними атаками (avalanche attacks) (opens in a new tab), був описаний у статті за березень 2022 року (opens in a new tab). Щоб здійснити лавинну атаку, зловмиснику потрібно контролювати кількох послідовних пропонувачів блоку. У кожному зі слотів пропозиції блоку зловмисник утримує свій блок, збираючи їх доти, доки чесний ланцюг не досягне однакової ваги піддерева з утриманими блоками. Потім утримані блоки випускаються так, щоб вони максимально здійснювали еквівокацію. Автори припускають, що підвищення ваги пропонувальника — основний захист від атак балансування та відскоку — не захищає від деяких варіантів лавинної атаки. Однак автори також продемонстрували атаку лише на сильно ідеалізованій версії алгоритму вибору форка Етеріуму (вони використовували GHOST без LMD).

Лавинна атака пом'якшується частиною LMD алгоритму вибору форка LMD-GHOST. LMD означає «керований останнім повідомленням» (latest-message-driven) і відноситься до таблиці, яку веде кожен валідатор і яка містить останнє повідомлення, отримане від інших валідаторів. Це поле оновлюється лише в тому випадку, якщо нове повідомлення надійшло з пізнішого слота, ніж те, що вже є в таблиці для певного валідатора. На практиці це означає, що в кожному слоті перше отримане повідомлення є тим, яке приймається, а будь-які додаткові повідомлення є еквівокаціями, які слід ігнорувати. Іншими словами, клієнти консенсусу не враховують еквівокації — вони використовують перше повідомлення, що надійшло від кожного валідатора, а еквівокації просто відкидаються, запобігаючи лавинним атакам.

Існує кілька інших потенційних майбутніх оновлень правила вибору форка, які могли б додати до безпеки, що забезпечується підвищенням ваги пропонувальника. Одним із них є злиття поглядів (view-merge) (opens in a new tab), коли атестатори заморожують свій погляд на вибір форка за n секунд до початку слота, а пропонувальник потім допомагає синхронізувати погляд на ланцюг по всій мережі. Ще одним потенційним оновленням є фінальність одного слота (single-slot finality) (opens in a new tab), яка захищає від атак, заснованих на часі повідомлень, фіналізуючи ланцюг лише після одного слота.

Затримка фінальності

Та сама стаття (opens in a new tab), яка вперше описала недорогу атаку реорганізації одного блоку, також описала атаку затримки фінальності (також відому як «збій життєздатності»), яка покладається на те, що зловмисник є пропонувачем блоку для блоку на межі епохи. Це критично важливо, оскільки ці блоки на межі епохи стають контрольними точками, які Каспер FFG використовує для фіналізації частин ланцюга. Зловмисник просто утримує свій блок доти, доки достатня кількість чесних валідаторів не використає свої голоси FFG на користь попереднього блоку на межі епохи як поточної цілі фіналізації. Потім вони випускають свій утриманий блок. Вони атестують свій блок, і решта чесних валідаторів також це роблять, створюючи форки з різними цільовими контрольними точками. Якщо вони правильно розрахували час, вони запобіжать фінальності, оскільки не буде супербільшості у 2/3, яка б атестувала будь-який із форків. Чим менший стейк, тим точнішим має бути розрахунок часу, оскільки зловмисник безпосередньо контролює менше атестацій, і тим нижчі шанси на те, що зловмисник контролюватиме валідатора, який пропонує даний блок на межі епохи.

Атаки на великі відстані (Long range attacks)

Існує також клас атак, специфічний для блокчейнів з доказом частки (PoS), який передбачає, що валідатор, який брав участь у генезис-блоці, підтримує окремий форк блокчейну поряд із чесним, зрештою переконуючи набір чесних валідаторів переключитися на нього у відповідний момент набагато пізніше. Цей тип атаки неможливий в Етеріумі через механізм фінальності, який гарантує, що всі валідатори погоджуються зі станом чесного ланцюга через регулярні проміжки часу («контрольні точки»). Цей простий механізм нейтралізує зловмисників, що здійснюють атаки на великі відстані, оскільки клієнти Етеріуму просто не будуть реорганізовувати фіналізовані блоки. Нові вузли, що приєднуються до мережі, робять це шляхом знаходження довіреного недавнього хешу стану (контрольна точка «слабкої суб'єктивності (opens in a new tab)») і використання його як псевдо-генезис-блоку для побудови поверх нього. Це створює «шлюз довіри» для нового вузла, що входить у мережу, перш ніж він зможе почати самостійно перевіряти інформацію.

Відмова в обслуговуванні (DoS)

Механізм PoS Етеріуму вибирає одного валідатора із загального набору валідаторів, щоб він був пропонувачем блоку в кожному слоті. Це можна обчислити за допомогою загальновідомої функції, і супротивник може ідентифікувати наступного пропонувача блоку трохи раніше його пропозиції блоку. Потім зловмисник може заспамити пропонувача блоку, щоб запобігти обміну інформацією з його пірами. Для решти мережі це виглядало б так, ніби пропонувач блоку був офлайн, і слот просто залишився б порожнім. Це може бути формою цензури проти певних валідаторів, що не дозволяє їм додавати інформацію до блокчейну. Впровадження єдиних таємних виборів лідера (SSLE) або неєдиних таємних виборів лідера зменшить ризики DoS, оскільки лише пропонувач блоку знає, що його було обрано, і вибір неможливо дізнатися заздалегідь. Це ще не реалізовано, але є активною сферою досліджень і розробок (opens in a new tab).

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

Зловмисники, що використовують >= 33% від загального стейку

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

33% застейканого етеру є орієнтиром для зловмисника, оскільки з будь-якою сумою, що перевищує цю, він має можливість запобігти фіналізації ланцюга без необхідності тонко контролювати дії інших валідаторів. Вони можуть просто всі зникнути разом. Якщо 1/3 або більше застейканого етеру зловмисно атестує або не атестує, то супербільшість у 2/3 не може існувати, і ланцюг не може фіналізуватися. Захистом від цього є витік через неактивність. Витік через неактивність ідентифікує тих валідаторів, які не атестують або атестують всупереч більшості. Застейканий етер, що належить цим неатестуючим валідаторам, поступово витікає, доки зрештою вони колективно не становитимуть менше 1/3 від загальної кількості, щоб ланцюг міг знову фіналізуватися.

Мета витоку через неактивність — змусити ланцюг знову фіналізуватися. Однак зловмисник також втрачає частину свого застейканого етеру. Постійна неактивність валідаторів, що представляють 33% від загального застейканого етеру, є дуже дорогою, навіть якщо валідатори не піддаються слешингу.

Припускаючи, що мережа Етеріуму є асинхронною (тобто існують затримки між відправленням і отриманням повідомлень), зловмисник, який контролює 34% від загального стейку, може спричинити подвійну фінальність. Це пов'язано з тим, що зловмисник може здійснити еквівокацію, коли його обирають виробником блоку, а потім проголосувати двічі всіма своїми валідаторами. Це створює ситуацію, коли існує форк блокчейну, за кожен з яких голосує 34% застейканого етеру. Кожен форк вимагає лише 50% решти валідаторів, щоб проголосувати на його користь, щоб обидва форки підтримувалися супербільшістю, і в цьому випадку обидва ланцюги можуть фіналізуватися (оскільки 34% валідаторів зловмисника + половина з решти 66% = 67% на кожному форку). Конкуруючі блоки повинні бути отримані приблизно 50% чесних валідаторів, тому ця атака є життєздатною лише тоді, коли зловмисник має певний ступінь контролю над часом поширення повідомлень у мережі, щоб він міг підштовхнути половину чесних валідаторів на кожен ланцюг. Зловмисник обов'язково знищить весь свій стейк (34% від ~10 мільйонів етерів із сьогоднішнім набором валідаторів), щоб досягти цієї подвійної фінальності, оскільки 34% його валідаторів будуть голосувати двічі одночасно — порушення, що карається слешингом із максимальним штрафом за кореляцію. Захистом від цієї атаки є дуже велика вартість знищення 34% від загального застейканого етеру. Відновлення після цієї атаки вимагатиме від спільноти Етеріуму координації «позамережево» та згоди слідувати одному чи іншому форку та ігнорувати інший.

Зловмисники, що використовують ~50% від загального стейку

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

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

При >50% від загального стейку зловмисник може домінувати в алгоритмі вибору форка. У цьому випадку зловмисник зможе атестувати більшістю голосів, що дасть йому достатній контроль для здійснення коротких реорганізацій без необхідності обманювати чесних клієнтів. Чесні валідатори наслідуватимуть цей приклад, оскільки їхній алгоритм вибору форка також бачитиме ланцюг, якому віддає перевагу зловмисник, як найважчий, тому ланцюг зможе фіналізуватися. Це дозволяє зловмиснику цензурувати певні транзакції, здійснювати короткострокові реорганізації та вилучати максимальний MEV шляхом зміни порядку блоків на свою користь. Захистом від цього є величезна вартість мажоритарного стейку (наразі трохи менше 19 мільярдів доларів США), який зловмисник ставить під загрозу, оскільки соціальний рівень, ймовірно, втрутиться і прийме чесний міноритарний форк, різко знецінивши стейк зловмисника.

Зловмисники, що використовують >=66% від загального стейку

Зловмисник із 66% або більше від загального застейканого етеру може фіналізувати бажаний ланцюг без необхідності примушувати будь-яких чесних валідаторів. Зловмисник може просто проголосувати за бажаний форк, а потім фіналізувати його, просто тому, що він може голосувати нечесною супербільшістю. Як власник супербільшості стейку, зловмисник завжди контролюватиме вміст фіналізованих блоків, маючи можливість витрачати, перемотувати назад і витрачати знову, цензурувати певні транзакції та реорганізовувати ланцюг за власним бажанням. Купуючи додатковий етер для контролю 66%, а не 51%, зловмисник фактично купує можливість здійснювати реорганізації ex post та скасування фінальності (тобто змінювати минуле, а також контролювати майбутнє). Єдиним реальним захистом тут є величезна вартість 66% від загального застейканого етеру та можливість покластися на соціальний рівень для координації прийняття альтернативного форка. Ми можемо розглянути це більш детально в наступному розділі.

Люди: остання лінія захисту

Якщо нечесним валідаторам вдасться фіналізувати бажану версію ланцюга, спільнота Етеріуму опиниться у складній ситуації. Канонічний ланцюг включає нечесну ділянку, вбудовану в його історію, тоді як чесні валідатори можуть бути покарані за атестацію альтернативного (чесного) ланцюга. Зверніть увагу, що фіналізований, але неправильний ланцюг також може виникнути через помилку в мажоритарному клієнті. Зрештою, останнім запасним варіантом є покластися на соціальний рівень — рівень 0 — для вирішення ситуації.

Однією з сильних сторін консенсусу PoS Етеріуму є те, що існує низка захисних стратегій (opens in a new tab), які спільнота може застосувати перед обличчям атаки. Мінімальною відповіддю може бути примусовий вихід валідаторів зловмисників з мережі без будь-яких додаткових штрафів. Щоб знову увійти в мережу, зловмиснику доведеться приєднатися до черги на активацію, яка гарантує поступове зростання набору валідаторів. Наприклад, додавання достатньої кількості валідаторів для подвоєння кількості застейканого етеру займає близько 200 днів, що фактично купує чесним валідаторам 200 днів, перш ніж зловмисник зможе спробувати ще одну атаку 51%. Однак спільнота також може вирішити покарати зловмисника більш суворо, скасувавши минулі винагороди або спаливши певну частину (до 100%) його застейканого капіталу.

Яким би не було покарання, накладене на зловмисника, спільнота також повинна разом вирішити, чи є нечесний ланцюг, незважаючи на те, що йому віддає перевагу алгоритм вибору форка, закодований у клієнтах Етеріуму, насправді недійсним, і чи повинна спільнота натомість будувати поверх чесного ланцюга. Чесні валідатори можуть колективно погодитися будувати поверх прийнятого спільнотою форка блокчейну Етеріуму, який, наприклад, міг відгалузитися від канонічного ланцюга до початку атаки або з якого були примусово видалені валідатори зловмисників. Чесні валідатори будуть зацікавлені будувати на цьому ланцюзі, оскільки вони уникнуть штрафів, застосованих до них за те, що вони (справедливо) не атестували ланцюг зловмисника. Біржі, сервіси вводу фіату та застосунки, побудовані на Етеріумі, імовірно, віддадуть перевагу перебуванню на чесному ланцюзі та підуть за чесними валідаторами до чесного блокчейну.

Однак це було б суттєвим викликом для управління. Деякі користувачі та валідатори, безсумнівно, програють у результаті повернення до чесного ланцюга, транзакції в блоках, перевірених після атаки, потенційно можуть бути відкочені, порушуючи рівень застосунків, і це просто підриває етику деяких користувачів, які схильні вірити, що «код — це закон». Біржі та застосунки, швидше за все, пов'язали позамережеві дії з ончейн-транзакціями, які тепер можуть бути відкочені, починаючи каскад відкликань і переглядів, які було б важко справедливо розплутати, особливо якщо незаконно отримані прибутки були змішані, внесені в децентралізовані фінанси (DeFi) або інші деривативи з вторинними наслідками для чесних користувачів. Безсумнівно, деякі користувачі, можливо, навіть інституційні, вже отримали б вигоду з нечесного ланцюга або завдяки проникливості, або завдяки щасливому випадку, і могли б виступити проти форка, щоб захистити свої прибутки. Лунали заклики відрепетирувати реакцію спільноти на атаки >51%, щоб можна було швидко здійснити розумне скоординоване пом'якшення наслідків. Є кілька корисних обговорень від Віталіка на ethresear.ch тут (opens in a new tab) і тут (opens in a new tab), а також у Twitter тут (opens in a new tab). Метою скоординованої соціальної відповіді має бути дуже цілеспрямоване та конкретне покарання зловмисника та мінімізація наслідків для інших користувачів.

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

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

Підсумок

На цій сторінці розглядалися деякі способи, за допомогою яких зловмисники можуть спробувати використати протокол консенсусу доказу частки (PoS) Етеріуму. Реорганізації та затримки фінальності були досліджені для зловмисників зі зростаючими частками від загального застейканого етеру. Загалом, багатший зловмисник має більше шансів на успіх, оскільки його стейк перетворюється на силу голосу, яку він може використовувати для впливу на вміст майбутніх блоків. При певних порогових сумах застейканого етеру сила зловмисника зростає:

33%: затримка фінальності

34%: затримка фінальності, подвійна фінальність

51%: затримка фінальності, подвійна фінальність, цензура, контроль над майбутнім блокчейну

66%: затримка фінальності, подвійна фінальність, цензура, контроль над майбутнім і минулим блокчейну

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

Загалом, незважаючи на ці потенційні вектори атак, ризик успішної атаки є низьким, безумовно нижчим, ніж в еквівалентах доказу виконання роботи (PoW). Це пов'язано з величезною вартістю застейканого етеру, який ставить під загрозу зловмисник, що прагне придушити чесних валідаторів своєю силою голосу. Вбудований рівень стимулів «батога і пряника» захищає від більшості зловживань, особливо для зловмисників із низьким стейком. Більш тонкі атаки відскоку та балансування також навряд чи будуть успішними, оскільки реальні умови мережі роблять точний контроль доставки повідомлень певним підмножинам валідаторів дуже важким для досягнення, а команди клієнтів швидко закрили відомі вектори атак відскоку, балансування та лавинних атак за допомогою простих патчів.

Атаки 34%, 51% або 66%, ймовірно, вимагатимуть позамережевої соціальної координації для вирішення. Хоча це, ймовірно, було б болісно для спільноти, здатність спільноти реагувати позамережево є сильним стримуючим фактором для зловмисника. Соціальний рівень Етеріуму є останнім рубежем захисту — технічно успішна атака все ще може бути нейтралізована спільнотою, яка погодиться прийняти чесний форк. Відбулася б гонка між зловмисником і спільнотою Етеріуму — мільярди доларів, витрачені на атаку 66%, ймовірно, були б знищені успішною атакою соціальної координації, якби вона була здійснена досить швидко, залишивши зловмисника з важкими мішками неліквідного застейканого етеру на відомому нечесному ланцюзі, який ігнорується спільнотою Етеріуму. Ймовірність того, що це в кінцевому підсумку виявиться прибутковим для зловмисника, є достатньо низькою, щоб бути ефективним стримуючим фактором. Ось чому інвестиції в підтримку згуртованого соціального рівня з тісно узгодженими цінностями є настільки важливими.

Подальше читання

Останнє оновлення сторінки: 13 квітня 2026 р.