До предполагаемой даты обновления Constantinople в сети Эфириума, которое уже неоднократно откладывалось из-за найденных багов и уязвимостей, осталось около двух недель. Однако в коде обновления найден очередной баг, затрагивающий ограниченное число смарт-контрактов, использующих функцию самоуничтожения.

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

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

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

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

Карвер также отметил, что предупредить всех потенциальных жертв до активации обновления, которое должно состояться примерно через 2 недели, не представляется возможным. «Можно воспользоваться некоторыми способами для обхода подобных «социальных атак», но для большинства из них нужны определенные знания. Очевидно, что обучить всех за 2 недели невозможно», - говорит он.

На своей странице в социальной сети Twitter разработчик проводит опрос, в котором пользователи отвечают на вопрос «смогут ли смарт-контракты неожиданно изменять код после обновления». На данный момент около 75% респондентов, которые с высокой долей вероятности имеют достаточно высокий уровень технических знаний, ошибочно ответили, что не смогут.

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

Релиз-менеджер клиента Parity Афри Шедону (Afri Schoedon) на вопрос о том, повлияют ли текущие обстоятельства на дату активации обновления, ответил: «Нет». При этом он пока не может сказать точно, насколько серьезна текущая проблема. Тем не менее, наступивший «ледниковый период» в блокчейне Эфириума, который уже увеличил время добычи блока до 21 секунды, вынуждает разработчиков действовать в ускоренном режиме.

Если не будет ничего предпринято в ближайшие 2 недели и обновление не состоится, то добыча эфира в сутки сократится еще на 2 000 – 3 000 ETH, а время добычи нового блока будет увеличено до 30-40 секунд. До эффективной заморозки сети осталось не так много времени. Самая поздняя дата, на которую можно отложить обновление Constantinople – это конец марта.

Тем временем, на рынке предсказаний Augur уже организовали пари на тему того, будет ли Constantinople активирован на блоке №7 280 000.