Атаки на доказ частки Ethereum та захист
Останні оновлення сторінки: 14 лютого 2026 р.
Злодії і хакери постійно шукають можливості атакувати клієнтське програмне забезпечення Ethereum. На цій сторінці описані відомі вектори атак на рівень консенсусу Ethereum і способи захисту від них. Інформація на цій сторінці адаптована з довшої версіїopens in a new tab.
Передумови
Потрібні деякі базові знання про доказ частки або proof-of-stake. Також буде корисно мати базове розуміння рівня заохочень Ethereum і його алгоритму вибору форку LMD-GHOST.
Чого хочуть зловмисники?
Поширеною помилкою є те, що успішний зловмисник може генерувати новий ефіріум або викачувати ефіріум з довільних акаунтів. Жоден із цих варіантів неможливий, оскільки всі транзакції виконуються всіма клієнтами виконання в мережі. Вони повинні задовольняти базові умови дійсності (наприклад, транзакції підписані приватним ключем відправника, у відправника достатній баланс тощо), інакше вони просто скасовуються. Існує три класи результатів, яких зловмисник може реально прагнути: реорганізації, подвійна фіналізація або затримка фіналізації.
Реорганізація — це перетасування блоків у новому порядку, можливо, з додаванням або видаленням деяких блоків у канонічному ланцюжку. Зловмисна реорганізація може забезпечити включення або виключення певних блоків, що дає змогу подвійно витрачати кошти або витягувати цінність шляхом випереджальних і подальших транзакцій (MEV). Реорганізації також можуть використовуватися для запобігання включенню певних транзакцій до канонічного ланцюжка — це форма цензури. Найбільш екстремальною формою реорганізації є «скасування фіналізації», яке видаляє або замінює блоки, які раніше були фіналізовані. Це можливо, лише якщо зловмисник знищить понад ⅓ усього поставленого ефіру — ця гарантія відома як «економічна фіналізація» — докладніше про це пізніше.
Подвійна фіналізація — це малоймовірний, але серйозний стан, за якого два форки можуть бути фіналізовані одночасно, створюючи постійний розкол у ланцюжку. Теоретично це можливо для зловмисника, який готовий ризикнути 34 % загального обсягу ефіру в стейкінгу. Спільнота буде змушена координувати свої дії поза ланцюгом і дійти згоди щодо того, якого ланцюжка дотримуватися, що вимагатиме міцності соціального рівня.
Атака затримки фіналізації не дає мережі досягти умов, необхідних для фіналізації розділів ланцюжка. Без фіналізації важко довіряти фінансовим застосункам, створеним на базі Ethereum. Метою атаки із затримкою фіналізації, найімовірніше, є просто збій роботи Ethereum, а не отримання прямого прибутку, якщо тільки зловмисник не має якоїсь стратегічної короткої позиції (позицій).
Атака на соціальний рівень може мати на меті підрив суспільної довіри до Ethereum, знецінення ефіру, зменшення впровадження або ослаблення спільноти Ethereum, щоб ускладнити позасмугову координацію.
З’ясувавши, чому зловмисник може атакувати Ethereum, у наступних розділах розглянемо, як він може це зробити.
Методи атаки
Атаки рівня 0
По-перше, особи, які не беруть активної участі в роботі Ethereum (шляхом запуску клієнтського програмного забезпечення), можуть атакувати соціальний рівень (рівень 0). Рівень 0 — це фундамент, на якому побудовано Ethereum, і тому він є потенційною поверхнею для атак, наслідки яких поширюються на решту стека. Деякі приклади можуть включати:
-
Кампанія з дезінформації може підірвати довіру спільноти до дорожньої карти Ethereum, команд розробників, застосунків тощо. Це, своєю чергою, може зменшити кількість осіб, які бажають брати участь у забезпеченні безпеки мережі, погіршуючи як децентралізацію, так і крипто-економічну безпеку.
-
Цілеспрямовані атаки та/або залякування, спрямовані на спільноту розробників. Це може призвести до добровільного виходу розробників і сповільнити прогрес Ethereum.
-
Надмірно завзяте регулювання також можна розглядати як атаку на рівень 0, оскільки воно може швидко дестимулювати участь і впровадження.
-
Проникнення в спільноту розробників обізнаних, але зловмисних суб’єктів, метою яких є сповільнення прогресу шляхом обговорення незначних питань, затримки ключових рішень, створення спаму тощо.
-
Підкуп ключових гравців в екосистемі Ethereum з метою впливу на прийняття рішень.
Що робить ці атаки особливо небезпечними, так це те, що в багатьох випадках потрібен дуже малий капітал або технічні знання. Атака рівня 0 може посилити крипто-економічну атаку. Наприклад, якщо цензура або скасування фіналізації були досягнуті зловмисним мажоритарним стейкхолдером, підрив соціального рівня може ускладнити координацію відповіді спільноти поза смугою.
Захист від атак рівня 0, ймовірно, не є простим, але можна встановити деякі основні принципи. Одним із них є підтримка високого співвідношення сигнал/шум для публічної інформації про Ethereum, що створюється та поширюється чесними членами спільноти через блоги, сервери Discord, анотовані специфікації, книги, подкасти та Youtube. Тут, на ethereum.org, ми докладаємо всіх зусиль, щоб підтримувати точність інформації та перекладати її якомога більшою кількістю мов. Заповнення простору високоякісною інформацією та мемами є ефективним захистом від дезінформації.
Ще одним важливим укріпленням проти атак соціального рівня є чітка місія та протокол управління. Ethereum позиціонує себе як чемпіон децентралізації та безпеки серед смарт-контрактів рівня 1, водночас високо цінуючи масштабованість і стійкість. Незалежно від розбіжностей, що виникають у спільноті Ethereum, ці основні принципи мінімально скомпрометовані. Оцінка наративу на відповідність цим основним принципам і їх розгляд через послідовні раунди перевірки в процесі EIP (пропозиція щодо покращення Ethereum), може допомогти спільноті відрізнити добросовісних учасників від зловмисних і обмежує можливості зловмисників впливати на майбутній напрямок розвитку Ethereum.
Нарешті, вкрай важливо, щоб спільнота Ethereum залишалася відкритою та привітною для всіх учасників. Спільнота з «охоронцями» та ексклюзивністю особливо вразлива до соціальних атак, оскільки легко створювати наративи «ми і вони». Трайбалізм і токсичний максималізм шкодять спільноті та руйнують безпеку рівня 0. Ефіріанці, які зацікавлені в безпеці мережі, повинні розглядати свою поведінку в Інтернеті та в реальному світі як прямий внесок у безпеку рівня 0 Ethereum.
Атака на протокол
Будь-хто може запустити клієнтське програмне забезпечення Ethereum. Щоб додати валідатор до клієнта, користувач повинен внести в стейкінг 32 ефіри в депозитний контракт. Валідатор дає змогу користувачеві брати активну участь у забезпеченні безпеки мережі Ethereum, пропонуючи та підтверджуючи нові блоки. Тепер валідатор має голос, який він може використовувати, щоб впливати на майбутній вміст блокчейну — він може робити це чесно та збільшувати свої запаси ефіру за допомогою винагород, або він може спробувати маніпулювати процесом у своїх інтересах, ризикуючи своєю часткою. Один зі способів здійснити атаку — це накопичити більшу частку загальної ставки, а потім використовувати її, щоб переголосувати чесних валідаторів. Чим більша частка ставки, яку контролює зловмисник, тим більша його сила голосу, особливо на певних економічних етапах, які ми розглянемо пізніше. Однак більшість зловмисників не зможуть накопичити достатньо ефіру для такої атаки, тому замість цього їм доводиться використовувати тонкі методи, щоб змусити чесну більшість діяти певним чином.
По суті, усі атаки з невеликою часткою є тонкими варіаціями двох типів неправильної поведінки валідатора: недостатня активність (невдала атестація/пропозиція або запізнення) або надмірна активність (занадто багато пропозицій/атестацій у слоті). У своїх найпростіших формах ці дії легко обробляються алгоритмом вибору форку та рівнем стимулювання, але існують розумні способи обіграти систему на користь зловмисника.
Атаки з використанням невеликих сум ETH
Реорганізації
У кількох статтях пояснюються атаки на Ethereum, які досягають реорганізації або затримки фіналізації лише з невеликою часткою загального поставленого ефіру. Ці атаки зазвичай покладаються на те, що зловмисник приховує певну інформацію від інших валідаторів, а потім випускає її певним нюансованим способом та/або у сприятливий момент. Зазвичай вони прагнуть витіснити деякі чесні блоки з канонічного ланцюжка. Neuder та ін., 2020opens 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. Зловмисник із 34 %opens in a new tab частки має дуже хороші шанси на успіх у цій атаці, як пояснюється в цій примітціopens in a new tab. Теоретично, однак, цю атаку можна спробувати з меншими частками. Neuder та ін., 2020opens in a new tab описали, що ця атака працює з 30-відсотковою часткою, але пізніше було показано, що вона життєздатна з 2 % від загальної часткиopens in a new tab і потім знову для одного валідатораopens in a new tab з використанням методів балансування, які ми розглянемо в наступному розділі.
Концептуальна схема атаки з реорганізацією одного блоку, описана вище (адаптовано з https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pairopens in a new tab)
Більш складна атака може розділити набір чесних валідаторів на окремі групи, які мають різні погляди на голову ланцюжка. Це відомо як атака балансування. Зловмисник чекає своєї нагоди запропонувати блок, і коли вона настає, він висловлюється неоднозначно та пропонує два. Вони надсилають один блок половині набору чесних валідаторів, а інший блок — іншій половині. Неоднозначність буде виявлена алгоритмом вибору форку, а ініціатор блоку буде покараний слешингом і виключений з мережі, але два блоки все одно існуватимуть, і приблизно половина набору валідаторів буде атестувати кожен форк. Тим часом зловмисні валідатори, що залишилися, утримують свої атестації. Потім, вибірково випускаючи атестації на користь того чи іншого форку для достатньої кількості валідаторів саме тоді, коли виконується алгоритм вибору форку, вони схиляють накопичену вагу атестацій на користь того чи іншого форку. Це може тривати нескінченно довго, причому атакуючі валідатори підтримують рівний розподіл валідаторів між двома форками. Оскільки жоден форк не може залучити 2/3 супербільшості, мережа не буде фіналізована.
Атаки відбиття є схожими. Голоси знову утримуються атакуючими валідаторами. Замість того, щоб віддавати голоси для підтримки рівного розподілу між двома форками, вони використовують свої голоси у сприятливі моменти для обґрунтування контрольних точок, які чергуються між форком A та форком B. Це перемикання обґрунтування між двома форками не дає змоги створити пари обґрунтованих вихідних і цільових контрольних точок, які можна було б фіналізувати в будь-якому ланцюжку, що зупиняє фіналізацію.
І атаки відбиття, і атаки балансування залежать від того, чи має зловмисник дуже точний контроль над часом передачі повідомлень у мережі, що малоймовірно. Проте в протокол вбудовані засоби захисту у вигляді додаткового зважування, яке надається швидким повідомленням порівняно з повільними. Це відомо як посилення ваги ініціатораopens in a new tab. Для захисту від атак відбиття алгоритм вибору форку було оновлено таким чином, щоб остання обґрунтована контрольна точка могла переключитися на контрольну точку альтернативного ланцюжка лише протягом першої 1/3 слотів у кожній епосіopens in a new tab. Ця умова не дає зловмиснику змоги накопичувати голоси для подальшого розгортання — алгоритм вибору форку просто залишається вірним контрольній точці, яку він вибрав у першій 1/3 епохи, протягом якої проголосувала б більшість чесних валідаторів.
У сукупності ці заходи створюють сценарій, за якого чесний ініціатор блоку випускає свій блок дуже швидко після початку слоту, потім настає період ~1/3 слота (4 секунди), коли цей новий блок може змусити алгоритм вибору форку переключитися на інший ланцюжок. Після закінчення цього ж терміну атестації, що надходять від повільних валідаторів, мають меншу вагу, ніж ті, що надійшли раніше. Це значною мірою сприяє швидким ініціаторам і валідаторам у визначенні голови ланцюжка та суттєво зменшує ймовірність успішної атаки балансування або відбиття.
Варто зазначити, що саме по собі посилення ініціатора захищає лише від «дешевих реорганізацій», тобто тих, які намагається здійснити зловмисник з невеликою часткою. Насправді, саме посилення ініціатора може бути обіграно більшими стейкхолдерами. Автори цієї публікаціїopens in a new tab описують, як зловмисник із 7-відсотковою часткою може стратегічно розгорнути свої голоси, щоб обманом змусити чесних валідаторів будувати свій форк, реорганізувавши чесний блок. Цю атаку було розроблено за припущення ідеальних умов затримки, які є дуже малоймовірними. Шанси зловмисника все ще дуже малі, а більша частка також означає більший капітал під ризиком і сильніший економічний дестимул.
Також було запропоновано атаку балансування, спеціально спрямовану на правило LMDopens in a new tab, яка, як припускалося, є життєздатною, незважаючи на посилення ініціатора. Зловмисник створює два конкуруючі ланцюжки, неоднозначно висловлюючи свою пропозицію блоку та поширюючи кожен блок приблизно на половину мережі, встановлюючи приблизний баланс між форками. Потім валідатори-змовники неоднозначно висловлюють свої голоси, розраховуючи час таким чином, щоб половина мережі спочатку отримала їхні голоси за форк A, а інша половина — спочатку за форк B. Оскільки правило LMD відкидає другу атестацію і зберігає лише першу для кожного валідатора, половина мережі бачить голоси за A і жодного за B, а інша половина бачить голоси за B і жодного за A. Автори описують, що правило LMD дає супротивнику «виняткову силу» для здійснення атаки балансування.
Цей вектор атаки LMD було закрито шляхом оновлення алгоритму вибору форкуopens in a new tab, щоб він повністю відкидав неоднозначних валідаторів з розгляду вибору форку. Алгоритм вибору форку також знижує майбутній вплив неоднозначних валідаторів. Це запобігає описаній вище атаці балансування, а також підтримує стійкість до лавинних атак.
Лавинні атакиopens in a new tab — ще один клас атак, описаний у статті від березня 2022 рокуopens in a new tab. Щоб здійснити лавинну атаку, зловмиснику необхідно контролювати кількох послідовних ініціаторів блоків. У кожному зі слотів пропозиції блоку зловмисник приховує свій блок, збираючи їх доти, доки чесний ланцюжок не досягне рівної ваги піддерева з прихованими блоками. Потім приховані блоки випускаються таким чином, щоб вони були максимально неоднозначними. Автори припускають, що посилення ініціатора — основний захист від атак балансування та відбиття — не захищає від деяких варіантів лавинної атаки. Однак автори також продемонстрували атаку лише на дуже ідеалізованій версії алгоритму вибору форку Ethereum (вони використовували GHOST без LMD).
Лавинна атака пом’якшується частиною LMD алгоритму вибору форку LMD-GHOST. LMD означає «керований останнім повідомленням» і стосується таблиці, яку веде кожен валідатор і яка містить останнє повідомлення, отримане від інших валідаторів. Це поле оновлюється, лише якщо нове повідомлення надходить з пізнішого слота, ніж той, що вже є в таблиці для певного валідатора. На практиці це означає, що в кожному слоті приймається перше отримане повідомлення, а будь-які додаткові повідомлення є неоднозначними і ігноруються. Інакше кажучи, клієнти консенсусу не враховують неоднозначності — вони використовують перше повідомлення від кожного валідатора, а неоднозначності просто відкидаються, запобігаючи лавинним атакам.
Існує кілька інших потенційних майбутніх оновлень правила вибору форку, які можуть додати до безпеки, що забезпечується посиленням ініціатора. Одним із них є злиття переглядів (view-merge)opens in a new tab, де атестувальники заморожують свій погляд на вибір форку за n секунд до початку слоту, а ініціатор потім допомагає синхронізувати погляд на ланцюжок у мережі. Ще одним потенційним оновленням є фіналізація одного слотаopens in a new tab, яка захищає від атак, заснованих на часі передачі повідомлень, фіналізуючи ланцюжок лише за один слот.
Затримка фіналізації
Та сама статтяopens in a new tab, у якій вперше було описано недорогу атаку з реорганізацією одного блоку, також описувала атаку із затримкою фіналізації (також відому як «збій живучості»), яка покладається на те, що зловмисник є ініціатором блоку для блоку на межі епох. Це критично важливо, оскільки ці блоки на межі епох стають контрольними точками, які Casper FFG використовує для фіналізації частин ланцюжка. Зловмисник просто приховує свій блок доти, доки достатня кількість чесних валідаторів не використає свої голоси FFG на користь блоку на межі попередньої епохи як поточної цілі фіналізації. Потім вони випускають свій прихований блок. Вони атестують свій блок, і решта чесних валідаторів роблять те саме, створюючи форки з різними цільовими контрольними точками. Якщо вони розрахують час правильно, вони завадять фіналізації, оскільки не буде супербільшості 2/3, яка б атестувала будь-який із форків. Чим менша частка, тим точнішим має бути час, оскільки зловмисник безпосередньо контролює менше атестацій, і тим нижчі шанси, що зловмисник контролюватиме валідатор, який пропонує даний блок на межі епох.
Далекосяжні атаки
Існує також клас атак, специфічних для блокчейнів із доказом частки, який полягає в тому, що валідатор, який брав участь у генезис-блоці, підтримує окремий форк блокчейну поряд із чесним, зрештою переконуючи набір чесних валідаторів перейти на нього в якийсь слушний час набагато пізніше. Цей тип атаки неможливий в Ethereum через гаджет фіналізації, який гарантує, що всі валідатори погоджуються щодо стану чесного ланцюжка через регулярні проміжки часу («контрольні точки»). Цей простий механізм нейтралізує далекосяжних зловмисників, оскільки клієнти Ethereum просто не будуть реорганізовувати фіналізовані блоки. Нові вузли, що приєднуються до мережі, роблять це, знаходячи довірений хеш нещодавнього стану (контрольна точка «слабкої суб’єктивностіopens in a new tab») і використовуючи його як псевдогенезис-блок для подальшої побудови. Це створює «шлюз довіри» для нового вузла, що входить у мережу, перш ніж він зможе почати самостійно перевіряти інформацію.
Відмова в обслуговуванні
Механізм PoS Ethereum обирає одного валідатора із загального набору валідаторів, щоб він був ініціатором блоку в кожному слоті. Це можна обчислити за допомогою загальновідомої функції, і супротивник може визначити наступного ініціатора блоку трохи раніше, ніж він запропонує свій блок. Потім зловмисник може заспамити ініціатора блоку, щоб перешкодити йому обмінюватися інформацією з іншими учасниками мережі. Для решти мережі це виглядало б так, ніби ініціатор блоку був офлайн, і слот просто залишився б порожнім. Це може бути формою цензури проти певних валідаторів, що заважає їм додавати інформацію в блокчейн. Впровадження виборів єдиного таємного лідера (SSLE) або виборів неєдиного таємного лідера пом'якшить ризики DoS, оскільки тільки ініціатор блоку знає, що його обрали, і вибір неможливо знати заздалегідь. Це ще не реалізовано, але є активною сферою досліджень і розробокopens in a new tab.
Все це вказує на те, що успішно атакувати Ethereum з невеликою часткою дуже складно. Життєздатні атаки, які були описані тут, вимагають ідеалізованого алгоритму вибору форку, малоймовірних умов мережі, або ж вектори атак вже були закриті відносно незначними виправленнями клієнтського програмного забезпечення. Це, звичайно, не виключає можливості існування вразливостей нульового дня, але демонструє надзвичайно високу планку технічної кваліфікації, знань рівня консенсусу та удачі, необхідних для ефективності зловмисника з меншою часткою. З точки зору зловмисника, найкращим варіантом може бути накопичити якомога більше ефіру та повернутися, озброївшись більшою часткою загальної ставки.
Зловмисники, які використовують >= 33% від загальної частки
Усі атаки, згадані раніше в цій статті, стають більш імовірними, якщо зловмисник має більше ефіру в стейкінгу для голосування та більше валідаторів, які можуть бути обрані для пропонування блоків у кожному слоті. Тому зловмисний валідатор може прагнути контролювати якомога більше ефіру в стейкінгу.
33% ефіру в стейкінгу є орієнтиром для зловмисника, оскільки з будь-якою сумою, що перевищує цю, він має можливість запобігти фіналізації ланцюга, не маючи потреби тонко контролювати дії інших валідаторів. Вони можуть просто зникнути всі разом. Якщо 1/3 або більше ефіру в стейкінгу зловмисно атестує або не атестує, то супербільшість у 2/3 не може існувати, і ланцюг не може фіналізуватися. Захистом від цього є витік через неактивність. Витік через неактивність виявляє тих валідаторів, які не атестують або атестують всупереч більшості. Ефір у стейкінгу, що належить цим неатестуючим валідаторам, поступово вичерпується, доки вони в сукупності не будуть становити менше 1/3 від загальної кількості, щоб ланцюг міг знову фіналізуватися.
Мета витоку через неактивність — знову забезпечити фіналізацію ланцюга. Однак зловмисник також втрачає частину свого ефіру в стейкінгу. Постійна неактивність валідаторів, що представляють 33% загального ефіру в стейкінгу, є дуже дорогою, навіть якщо валідатори не піддаються слешингу.
Припускаючи, що мережа Ethereum є асинхронною (тобто існують затримки між відправленням та отриманням повідомлень), зловмисник, який контролює 34% загальної частки, може спричинити подвійну фіналізацію. Це тому, що зловмисник може діяти двозначно, коли його обирають продюсером блоку, а потім подвійно голосувати з усіма своїми валідаторами. Це створює ситуацію, коли існує форк блокчейну, кожен з яких має 34% ефіру в стейкінгу, що голосує за нього. Кожен форк вимагає лише 50% голосів решти валідаторів на свою користь, щоб обидва форки були підтримані супербільшістю, у такому випадку обидва ланцюги можуть фіналізуватися (оскільки 34% валідаторів зловмисників + половина решти 66% = 67% на кожному форку). Конкуруючі блоки повинні бути отримані приблизно 50% чесних валідаторів, тому ця атака є життєздатною лише тоді, коли зловмисник має певний ступінь контролю над часом поширення повідомлень по мережі, щоб він міг підштовхнути половину чесних валідаторів до кожного ланцюга. Зловмисник обов'язково знищить всю свою частку (34% від ~10 мільйонів ефіру з сьогоднішнім набором валідаторів), щоб досягти цієї подвійної фіналізації, оскільки 34% його валідаторів будуть одночасно голосувати двічі — це порушення, що карається слешингом з максимальним штрафом за кореляцію. Захистом від цієї атаки є дуже велика вартість знищення 34% загального ефіру в стейкінгу. Відновлення після цієї атаки вимагатиме від спільноти Ethereum координації «поза ланцюгом» та узгодження одного з форків, ігноруючи інший.
Зловмисники, які використовують ~50% від загальної частки
При 50% ефіру в стейкінгу, зловмисна група валідаторів теоретично може розділити ланцюг на два однаково розмірних форки, а потім просто використати всю свою 50% частку для голосування проти чесного набору валідаторів, тим самим підтримуючи два форки та запобігаючи фіналізації. Витік через неактивність на обох форках врешті-решт призведе до фіналізації обох ланцюгів. На цьому етапі єдиним варіантом є повернення до соціального відновлення.
Дуже малоймовірно, що ворожа група валідаторів могла б постійно контролювати рівно 50% загальної частки, враховуючи певну мінливість кількості чесних валідаторів, затримки в мережі тощо — величезна вартість здійснення такої атаки в поєднанні з низькою ймовірністю успіху виглядає як сильний стримуючий фактор для раціонального зловмисника, особливо коли невелике додаткове інвестування в отримання більше ніж 50% відкриває набагато більше можливостей.
При >50% загальної частки зловмисник може домінувати в алгоритмі вибору форку. У цьому випадку зловмисник зможе атестувати з більшістю голосів, що дасть йому достатній контроль для здійснення коротких реорганізацій без необхідності обманювати чесних клієнтів. Чесні валідатори підуть за ним, оскільки їхній алгоритм вибору форку також побачить ланцюг, якому надає перевагу зловмисник, як найважчий, тому ланцюг може фіналізуватися. Це дозволяє зловмиснику цензурувати певні транзакції, робити короткострокові реорганізації та отримувати максимальний MEV, перевпорядковуючи блоки на свою користь. Захистом від цього є величезна вартість мажоритарної частки (наразі трохи менше 19 мільярдів доларів США), якою ризикує зловмисник, оскільки соціальний рівень, швидше за все, втрутиться і прийме чесний міноритарний форк, що різко знецінить частку зловмисника.
Зловмисники, що використовують >=66% загальної ставки
Зловмисник, що має 66% або більше загального ефіру в стейкінгу, може фіналізувати свій бажаний ланцюг, не змушуючи жодних чесних валідаторів. Зловмисник може просто проголосувати за свій бажаний форк, а потім фіналізувати його, просто тому, що він може голосувати з нечесною супербільшістю. Як мажоритарний стейкхолдер, зловмисник завжди контролюватиме вміст фіналізованих блоків, маючи можливість витрачати, повертати та витрачати знову, цензурувати певні транзакції та реорганізовувати ланцюг за бажанням. Купуючи додатковий ефір для контролю 66% замість 51%, зловмисник фактично купує можливість робити реорганізації ex post та скасування фіналізації (тобто змінювати минуле, а також контролювати майбутнє). Єдиними реальними засобами захисту тут є величезна вартість 66% загального ефіру в стейкінгу та можливість звернутися до соціального рівня для координації прийняття альтернативного форку. Ми можемо розглянути це детальніше в наступному розділі.
Люди: остання лінія оборони
Якщо нечесним валідаторам вдасться фіналізувати свою бажану версію ланцюга, спільнота Ethereum опиниться у скрутному становищі. Канонічний ланцюг містить нечесну частину, вбудовану в його історію, тоді як чесні валідатори можуть бути покарані за атестацію альтернативного (чесного) ланцюга. Зауважте, що фіналізований, але неправильний ланцюг може також виникнути через помилку в клієнті більшості. Зрештою, останнім запасним варіантом є покладатися на соціальний рівень — рівень 0 — для вирішення ситуації.
Однією з сильних сторін консенсусу PoS Ethereum є наявність широкого спектру оборонних стратегійopens in a new tab, які спільнота може застосувати в разі атаки. Мінімальною відповіддю може бути примусовий вихід валідаторів зловмисників з мережі без будь-якого додаткового штрафу. Щоб знову увійти в мережу, зловмиснику доведеться стати в чергу активації, яка забезпечує поступове зростання набору валідаторів. Наприклад, додавання достатньої кількості валідаторів для подвоєння суми ефіру в стейкінгу займає близько 200 днів, що фактично дає чесним валідаторам 200 днів, перш ніж зловмисник зможе спробувати ще одну атаку 51%. Однак спільнота може також вирішити покарати зловмисника суворіше, відкликавши минулі винагороди або спаливши частину (до 100%) їхнього капіталу в стейкінгу.
Незалежно від покарання, накладеного на зловмисника, спільнота також повинна разом вирішити, чи є нечесний ланцюг, незважаючи на те, що він є тим, якому надає перевагу алгоритм вибору форку, закодований у клієнтах Ethereum, насправді недійсним і чи повинна спільнота будувати на основі чесного ланцюга. Чесні валідатори могли б колективно погодитися будувати на основі прийнятого спільнотою форку блокчейну Ethereum, який, наприклад, міг би відколотися від канонічного ланцюга до початку атаки або мати примусово видалених валідаторів зловмисників. Чесні валідатори були б зацікавлені в побудові на цьому ланцюзі, оскільки вони уникнули б штрафів, застосованих до них за те, що вони (справедливо) не атестували ланцюг зловмисника. Біржі, платформи для входу в криптовалюту та застосунки, побудовані на Ethereum, імовірно, віддали б перевагу чесному ланцюгу і пішли б за чесними валідаторами на чесний блокчейн.
Однак це було б значним викликом для управління. Деякі користувачі та валідатори, безсумнівно, постраждають внаслідок повернення до чесного ланцюга, транзакції в блоках, перевірених після атаки, потенційно можуть бути відкочені, що порушить роботу рівня застосунків, і це просто підриває етику деяких користувачів, які схильні вірити, що «код — це закон». Біржі та застосунки, швидше за все, пов'язали дії поза ланцюгом з транзакціями в ланцюзі, які тепер можуть бути відкочені, що спричинить каскад відмов та переглядів, які було б важко справедливо розплутати, особливо якщо незаконно отримані прибутки були змішані, внесені в DeFi або інші деривативи з вторинними наслідками для чесних користувачів. Безсумнівно, деякі користувачі, можливо, навіть інституційні, вже отримали вигоду від нечесного ланцюга, чи то завдяки кмітливості, чи то завдяки щасливому випадку, і можуть виступати проти форку, щоб захистити свої прибутки. Були заклики до репетиції реакції спільноти на атаки >51%, щоб можна було швидко виконати розумне скоординоване пом'якшення наслідків. Є корисне обговорення Віталіка на ethresear.ch тутopens in a new tab і тутopens in a new tab, а також у Twitter тутopens in a new tab. Метою скоординованої соціальної відповіді має бути дуже цілеспрямоване та конкретне покарання зловмисника та мінімізація наслідків для інших користувачів.
Управління — це вже складна тема. Управління надзвичайною ситуацією на рівні 0 у відповідь на нечесний фіналізуючий ланцюг, безсумнівно, було б складним для спільноти Ethereum, але це траплялося — двічі — в історії Ethereum).
Тим не менш, є щось досить задовільне в тому, що останній запасний варіант знаходиться в реальному світі. Зрештою, навіть з цією феноменальною купою технологій над нами, якби найгірше колись сталося, реальним людям довелося б координувати свій вихід з цього.
Підсумок
На цій сторінці розглядалися деякі способи, якими зловмисники можуть спробувати використати протокол консенсусу доказу частки Ethereum. Реорганізації та затримки фіналізації були розглянуті для зловмисників зі зростаючою часткою загального ефіру в стейкінгу. Загалом, багатший зловмисник має більше шансів на успіх, оскільки його частка перетворюється на право голосу, яке він може використовувати для впливу на вміст майбутніх блоків. При певних порогових сумах ефіру в стейкінгу сила зловмисника зростає:
33%: затримка фіналізації
34%: затримка фіналізації, подвійна фіналізація
51%: затримка фіналізації, подвійна фіналізація, цензура, контроль над майбутнім блокчейну
66%: затримка фіналізації, подвійна фіналізація, цензура, контроль над майбутнім і минулим блокчейну
Існує також низка більш складних атак, які вимагають невеликої кількості ефіру в стейкінгу, але покладаються на дуже досвідченого зловмисника, який має тонкий контроль над часом передачі повідомлень, щоб схилити на свій бік чесний набір валідаторів.
Загалом, незважаючи на ці потенційні вектори атак, ризик успішної атаки низький, безумовно нижчий, ніж у еквівалентів з доказом роботи. Це пов'язано з величезною вартістю ефіру в стейкінгу, яким ризикує зловмисник, що прагне перевершити чесних валідаторів своєю силою голосу. Вбудований рівень стимулювання «батога і пряника» захищає від більшості зловживань, особливо для зловмисників з низькою часткою. Більш тонкі атаки відскоку та балансування також навряд чи будуть успішними, оскільки реальні умови мережі ускладнюють тонкий контроль над доставкою повідомлень до конкретних підмножин валідаторів, а команди клієнтів швидко закрили відомі вектори атак відскоку, балансування та лавини за допомогою простих виправлень.
Атаки 34%, 51% або 66%, ймовірно, вимагатимуть позасмугової соціальної координації для вирішення. Хоча це, ймовірно, буде болісно для спільноти, здатність спільноти реагувати позасмугово є сильним стримуючим фактором для зловмисника. Соціальний рівень Ethereum є останнім запобіжником — технічно успішна атака все ще може бути нейтралізована спільнотою, яка погодиться прийняти чесний форк. Буде гонка між зловмисником і спільнотою Ethereum — мільярди доларів, витрачені на 66% атаку, ймовірно, будуть знищені успішною соціальною координаційною атакою, якщо вона буде здійснена досить швидко, залишаючи зловмисника з важкими мішками неліквідного ефіру в стейкінгу на відомому нечесному ланцюгу, ігнорованому спільнотою Ethereum. Імовірність того, що це виявиться прибутковим для зловмисника, настільки низька, що є ефективним стримуючим фактором. Ось чому інвестиції в підтримку згуртованого соціального рівня з тісно узгодженими цінностями є такими важливими.
Додаткові матеріали
- Більш детальна версія цієї сторінкиopens in a new tab
- Віталік про фіналізацію розрахунківopens in a new tab
- Документ про LMD GHOSTopens in a new tab
- Документ Casper-FFGopens in a new tab
- Документ Gasperopens in a new tab
- Специфікації консенсусу щодо посилення ваги ініціатораopens in a new tab
- Атаки відбиття на ethresear.chopens in a new tab
- Дослідження SSLEopens in a new tab
