Блокчейн-мережа Ethereum зіткнулася з серйозними технічними проблемами під час впровадження масштабного оновлення Pectra, яке мало відбутися в тестовій мережі Sepolia 5 березня 2025 року. Невідомий зловмисник виявив вразливість, що змусила розробників терміново вжити «приватне виправлення» для стабілізації роботи мережі.
Про це розповідає ProIT
Одразу після запуску в мережі виникли помилки у geth-вузлах – нодах, які використовують один з найпопулярніших клієнтів Geth (Go Ethereum). Це призвело до збільшення кількості пустих блоків, що добувалися майнерами.
Причини помилок в оновленні
За словами одного з розробників Ethereum, Маріуса ван дер Вейдена, проблема виникла через те, що контракт депозиту надсилав непередбачувану подію — переказ замість депозиту. Це призводило до відхилення транзакцій вузлами та генерації лише пустих блоків. Виявлена помилка була пов’язана з EIP-6110 (Ethereum Improvement Proposal 6110), що спрощує процедуру депозитів валідаторів Ethereum, і вимагала уніфікованої обробки всіх логів контракту депозиту.
Команда geth випустила виправлення, яке ігнорувало всі помилкові логи, але не врахувала особливий випадок, пов’язаний зі стандартом ERC-20. Цей стандарт не забороняє перекази нульової кількості токенів, що дозволяє користувачам без токенів надсилати транзакції. Невідомий зловмисник скористався цим, багаторазово надсилаючи нульові перекази на контракт депозиту, що призвело до повторюваних помилок та добування пустих блоків.
Виправлення проблеми та подальші кроки
Видобуток пустих блоків негативно впливає на ефективність мережі, оскільки ці блоки не містять корисних транзакцій, а лише заголовок та службову інформацію. Це призводить до витрат ресурсів на їх обробку без фактичного прогресу у виконанні транзакцій, а також збільшує затримку підтвердження. Крім того, майнери і валідатори втрачають комісійні збори.
Розробники виявили, що джерелом проблеми став новий акаунт, поповнений через публічний кран. Для зупинки атаки було розгорнуто «приватне виправлення» для вибраних DevOps-вузлів, які контролювали близько 10% мережі. Після впровадження виправлення вузли відновили виробництво нормальних заповнених блоків, і ланцюг почав функціонувати без помилок. Проблема торкнулася лише тестової мережі Sepolia.
У зв’язку з виявленою вразливістю оновлення Pectra було відкладено для подальшого тестування та усунення можливих недоліків. Pectra має на меті покращити стейкінг ETH, масштабованість проектів другого рівня та загальну пропускну здатність мережі. Оновлення включає 11 пропозицій щодо поліпшення мережі Ethereum (EIP) і є першим великим оновленням після Dencun, яке було запущено у березні 2024 року.
Початково розробники планували запустити Pectra в головній мережі Ethereum 8 квітня, за умови успішного оновлення тестових мереж Holesky та Sepolia. Однак перший запуск Holesky 24 лютого також стикнувся з технічними проблемами.