Ethereum відкладає оновлення Glamsterdam через вісім ризиків для смарт-контрактів

ETH
Оновлення Glamsterdamризик смарт-контрактівтестова мережа HoodiChainSecurityціноутворення на газEthereumEIP-8037
2 години томуДжерело: crypto.news
Ethereum відкладає оновлення Glamsterdam через вісім ризиків для смарт-контрактів

Розробники Ethereum відклали оновлення Glamsterdam у тестовій мережі Hoodi після того, як дослідники з безпеки виявили вісім наявних припущень у смарт-контрактах, які можуть стати недійсними відповідно до запропонованих змін в обліку газу.

Резюме

  • Розробники Ethereum відклали оновлення Glamsterdam у тестовій мережі Hoodi після того, як ChainSecurity виявила вісім припущень у смарт-контрактах, які можуть стати недійсними відповідно до запропонованих змін газу.
  • EIP 8037 та EIP 8038 змінять спосіб, у який Ethereum стягує газ за певні операції, що потенційно може вплинути на наявні контракти, які залежать від фіксованих витрат газу або конкретних умов невдачі транзакцій.
  • Ethereum Foundation закликала розробників та аудиторів переглянути постраждалі проєкти та повідомити про потенційні проблеми, перш ніж основні розробники вирішать, чи необхідні зміни до специфікацій оновлення.
  • Хардфорк Hoodi залишатиметься на паузі, доки виявлені проблеми не будуть вирішені, тоді як розробка наступного оновлення Ethereum Hegota продовжується без перерв.

У блог-публікації від 6 листопада Ethereum Foundation повідомила, що аудиторська фірма ChainSecurity виявила кілька проєктів, які можуть стати вразливими після набуття чинності EIP-8037 та EIP-8038.

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

Ці висновки спонукали групу All Core Developers (ACD) Ethereum утриматися від хардфорку Hoodi, доки проблеми сумісності не будуть вирішені.

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

Оновлення Glamsterdam в Ethereum стикається з вісьмома проблемами сумісності

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

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

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

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

Ethereum Foundation опублікувала репозиторій GitHub, у якому задокументовано вісім постраждалих інваріантів, з поясненнями, прикладами та інструкціями для розробників щодо перевірки власного коду.

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

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

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

Активація Hoodi залишається на паузі, поки тривають перевірки безпеки

Останні висновки надають додаткові подробиці щодо попереднього рішення Ethereum відкласти активацію Hoodi, спочатку заплановану на 26 жовтня о 17:42:48 UTC.

Як раніше повідомляло crypto.news, відтермінування вилучило з розкладу Hoodi як активації рівня виконання Amsterdam, так і рівня консенсусу Gloas, разом із запланованим збільшенням ліміту газу тестової мережі до 200 мільйонів.

Нову дату активації не оголошено.

Розробник Ethereum Foundation Маріус ван дер Вейден заявив, що організація працює з ChainSecurity та Dedaub, проводячи внутрішні аудити для оцінки можливого впливу на існуючі застосунки.

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

Тому він попросив розробників і незалежних аудиторів визначити постраждалі застосунки та подати свої висновки до наступних обговорень All Core Developers.

Репозиторій запитує деталі постраждалих контрактів, конкретний задіяний інваріант, можливі виправлення та, за наявності, відповідні тести. Звіти можна подавати приватно на [email protected].

Залежно від відгуків, розробники можуть розглянути коригування EIP-8037 та EIP-8038 перед продовженням оновлення.

Робота над наступним оновленням Ethereum Hegotá продовжуватиметься паралельно і залишається незмінною через затримку Glamsterdam, за словами Фонду.

Зміни масштабування Glamsterdam залишаються на стадії тестування

Glamsterdam уже активувався в тестовій мережі Sepolia 6 жовтня, де розробники почали вивчати його зміни масштабування за ліміту газу в 200 мільйонів.

Оновлення запроваджує закріплене розділення пропонера та будівельника через EIP-7732, що переносить обов'язки з побудови блоків у консенсусний протокол Ethereum.

Інший важливий компонент, EIP-7928, запроваджує списки доступу на рівні блоків, покликані допомогти клієнтам ефективніше обробляти дані транзакцій і підтримувати паралельне виконання.

Переоцінка газу становить ще одну частину оновлення. EIP-8037 змінює вартість створення нового стану блокчейну, тоді як EIP-8038 коригує плату за доступ до існуючого стану.

У серпневій технічній оцінці Ethereum Foundation заявив, що повторні відтворення історичних транзакцій показали, що більшість смарт-контрактів залишилися не порушеними запропонованими змінами цін.

Однак менша група потребувала вищих лімітів газу або більш суттєвих модифікацій, щоб уникнути неочікуваних збоїв.

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

Виправлення стосувалося окремої проблеми, пов'язаної зі змінами консенсусу Gloas у Glamsterdam, із додаванням регресійних тестів до специфікацій перед тим, як клієнтські реалізації впровадять переглянуту поведінку.