Долгожданный хардфорк сети Ethereum — Constantinople — состоится позднее. В коде обновления обнаружена потенциальная уязвимость, ставящая под удар всю сеть.
Фальстарт
Компания ChainSecurity, занимающаяся аудитом смарт-контрактов, сообщила, что одно из планируемых элементов обновления — Ethereum Improvement Proposal (EIP) 1283 — в случае развертывания может вызвать возникновение дыры в системе безопасности, через которую злоумышленники смогут похищать пользовательские активы. В ходе конференс-колла, в котором участвовали разработчики Ethereum, а также создатели клиентов для Ethereum и других приложений, согласились, что необходимо отложить активацию хардфорка, пока решение этой проблемы не будет найдено.
В обсуждении участвовали Виталик Бутерин, разработчики Хадсон Джеймсон, Ник Джонсон и Эван Ван Несс, а также Афри Шойдон из Parity и другие. Новая возможная дата хардфорка Constantinople будет обсуждаться во время еженедельного конференс-колла разработчиков в эту пятницу, 18 января.
Ранее предполагалось, что хардфорк Constantinople состоится где-то 17 января.
Баг из прошлого
Обсуждая обнаруженную уязвимость, разработчики Ethereum предположили, что ее исправление может занять слишком много времени. Баг под названием «атака перезахода» позволяет злоумышленнику повторять одну и ту же команду множество раз без уведомления других пользователей. Эта уязвимость действует похожим образом, как и баг, который позволил мошенникам украсть средства децентрализованной организации DAO в 2016 году. Тогда создатели Ethereum прибегли к хардфорку, чтобы частично вернуть украденные средства.
Атака на децентрализованную автономную организацию The DAO произошла 17 июня. В результате нападения злоумышленники похитили 3,6 млн токенов ether или свыше $64 млн по курсу на день атаки. Похитители воспользовались недоработкой в коде The DAO.
В середине июля для возврата похищенных средств была проведена «жесткая вилка» системы Ethereum, однако часть сообщества не согласилась с этим решением и решила поддержать оригинальный блокчейн Ethereum, получивший название Ethereum Classic.