Ethereum испытал разделение блокчейна на фоне переноса сроков активации обновления Constantinople, пишет Trustnodes.
«Мы не смогли связаться со всеми майнерами и предупредить их о переносе обновления, – заявил разработчик сервиса MyCrypto Майкл Хан. – Сравните хеш-рейт в сети без Constantinople с тем, что был до форка. Вы увидите, что ~10-20TH/s пропали из правильной цепи, не использующей Constantinople».
Таким образом, более 10% майнеров перешли в новую цепь, несмотря на отмену обновления. Объём их вычислительных мощностей в 2 раза превышает ресурс майнеров Ethereum Classic.
В настоящее время они отстают приблизительно на 1 000 блоков от основной цепи. В Ethereum сложность изменяется поблочно, поэтому постепенно ответвившаяся цепь возвращается к нормальному состоянию.
Произошёл ли раскол случайно или эти майнеры намеренно продолжают поддерживать жизнеспособность своей цепи на протяжении несколько часов, не ясно. Процесс не сопровождается никакими официальными объявлениями, следовательно, монеты из цепи Constantinople нигде не торгуются, что делает добычу в ней ещё более бессмысленной. Вероятно, всё дело в том, что некоторые майнеры были недостаточно внимательны или не получили информацию о переносе обновления своевременно.
Обновившие свои ноды пользователи также рискуют оказаться не в той сети. Это произошло, например, с координатором хардфорка и релиз-менеджером Parity Афри Шедоном.
«После того как я сказал всему миру обновиться, конечно же, моя собственная нода застряла в неправильной цепи», – написал он.
Также заслуживает внимания заявление эксперта по безопасности в сфере криптовалют Сержио Лернера, который сообщил, что им было известно об уязвимости, ставшей причиной переноса Constantinople, за несколько месяцев до этого.
«Несколько месяцев назад на Coinspect мы обсуждали “уязвимость”, которая сегодня заблокировала хардфорк Ethereum. Мы знали, что некоторые контракты будут ломаться из-за EIP1283. Мы даже создали пример уязвимого контракта. Мы думали, что это было очевидно и всем известно», – написал он, добавив ссылку на опубликованное в сентябре сообщение, в котором описывается именно эта уязвимость языка программирования Solidity, используемого в Ethereum.
Лернер признал, что не проинформировал об уязвимости разработчиков Ethereum:
«Я был уверен в том, что разработчикам известно о ней. Возможно, никакой ценный контракт не сломается на практике. Но они решили провести повторную оценку рисков за 36 часов до форка».
Неожиданное обнаружение уязвимости может объясняться тем, что код, в котором она содержится, был интегрирован в последний момент. Изначально Constantinople был запланирован на середину ноября, однако был перенесён из-за бага, выявленного в тестовой сети.
«EIP1283 изначально был предложен 1 августа 2018 года. Он был принят 28 ноября 2018 года».
Таким образом, после переноса сроков обновления разработчики решили увеличить его масштаб и пропустили ошибку, о которой, как выяснилось, знали многие.