Новый баг Constantinople вынуждает разработчиков Ethereum принимать срочные решения

В приближающемся обновлении Ethereum был обнаружен новый баг, затрагивающий ограниченное число смарт-контрактов, использующих функцию самоуничтожения. Об этом пишет Trustnodes.

Разработчик Ethereum Foundation Джейсон Карвер пояснил, что новая функция под названием Create2 может позволить заменить самоуничтожившийся смарт-контракт, попутно изменив указанные в нём правила.

«Можно создать довольно безобидный контракт до Constantinople, чтобы у него было два возможных сценария: {‘контракт существует’: ‘обменять токены’, ‘контракт самоуничтожается’: ‘израсходовать определённый объём газа’}. После Constantinople сценарии могут быть следующими: {‘контракт существует’: ‘обменять токены’, ‘контракт самоуничтожается’: ‘израсходовать определённый объём газа’, ‘заменить контракт’: ‘все предварительно одобренные для контракта ERC20-токены украдены’}».

Карвер отметил, что функция самоуничтожения не несёт дополнительных рисков в текущей версии протокола, однако после обновления код может быть использован для кражи всех выделенных токенов смарт-контракта.

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

Карвер, однако, считает, что предупредить всех потенциальных жертв до активации хард форка, который должен состояться через 2 недели, не удастся. «Существуют способы обхода подобных “социальных атак”, но большинство из них требует обучения. Определённо, это не удастся сделать до Constantinople», - написал он.

В своём Twitter Карвер проводит опрос, участникам которого предлагается ответить, смогут ли смарт-контракты неожиданно изменять код после обновления. К настоящему моменту 75% респондентов, большинство из которых, вероятно, являются технически подкованными пользователями, заявили, что не смогут.

Разработчики рассматривают возможность интеграции дополнительной защиты от повторного воспроизведения в функцию Create2 и некоторые альтернативные решения. Какое из них они сочтут наиболее оптимальным, неизвестно, но действовать им в любом случае придётся в крайне сжатые сроки.

Релиз-менеджер клиента Parity Афри Шедон в ответ на вопрос о том, повлияют ли новые обстоятельства на дату активации хард форка, ответил: «Нет». При этом он не был уверен, говоря о серьёзности уязвимости: «Мне тоже хотелось бы знать ответ». Также необходимо учесть, что наступление «ледникового периода» в блокчейне Ethereum, уже увеличившего время блока до 21 секунды, будет вынуждать разработчиков действовать быстро.

Пользователи рынка предсказаний Augur, тем временем, организовали пари, участникам которого предлагается сделать ставку на следующее условие: «Состоится ли форк Ethereum Constantinople к 28 февраля 2019 года?»
Фото: Yuri Shebalius
Комментарии 2
Вы должны войти на сайт, чтобы разместить свой комментарий.
  • justb
  • VeberRS5