Апгрейд сети Ethereum Constantinople, запланированный на середину января, снова откладывается. На этот раз из-за обнаружения критической уязвимости.

Вчера аудиторская компания ChainSecurity сообщила, что при интеграции предложения по улучшению сети Ethereum (Ethereum Improvement Proposals, или EIPs) 1283 с сетью может открыться уязвимость в коде, которая позволит злоумышленникам выводить средства пользователей.

Команда разработчиков Ethereum во главе с Виталиком Бутериным согласилась перенести срок запуска хардфорка сети, чтобы внимательно изучить и исправить проблему.

Необходимость переноса запуска, который был назначен на 17 января в 04:00 по всемирному координированному времени (UTC), сразу стала очевидна разработчикам во время обсуждения уязвимости. Устранение проблемы может занять достаточное долгое время. Такого вида уязвимости называют рекурсивным вызовом (reentrancy attack). Во время атаки уязвимый смарт-контракт совершает вызов к другому контракту, а внешний контракт в это время может делать ответный вызов функций уязвимого контракта внутри начального вызова. Таким образом злоумышленник может вызывать одну и ту же функцию несколько раз и, например, бесконечно выводить средства.

Представители ChainSecurity также рассказали, что «грязные» операции хранения данных в обновлённой сети Ethereum будут стоить 200 единиц газа, вместо привычных 5000, в то время, как для вызова функции отправки средств будет требоваться 2300 единиц газа. Это значит, что мошенникам станет намного легче манипулировать переменными уязвимых контрактов.

Напомним, что первоначально разработчики Ethereum собирались активировать Constantinople ещё в октябре прошлого года. Однако в начале октября тестовый запуск перенесли для устранения уязвимости, обнаруженной в одной из версий обновления. Первые слухи о том, что долгожданный хардфорк случится в середине января появились в ноябре прошлого года. Теперь же новая дата запуска станет известна только в пятницу во время очередной видеоконференции разработчиков.