Хард форк Constantinople был отложен, однако многие майнеры все-же имплементировали обновление
15 января разработчики Эфириума выпустили предупреждение системы безопасности о том, что они отложили запланированное обновление Constantinople. Однако не все сделали соответствующие изменения и в настоящее время существует параллельная вселенная майнинга Эфириума. Произошло "раздвоение цепи" и некоторые майнеры работают на неофициальной цепочке Constantinople, без консенсуса с большей частью сети.
Форк был отложен после того, как в одном из предложенных обновлений Эфириума (EIP) были обнаружены потенциальные уязвимости. В заявлении о причинах задержки говорится:
Мы исследуем любые потенциальные уязвимости и будем обновлять информацию в блоге и социальных сетях. С большой осторожностью основные заинтересованные стороны сообщества Эфириума определили, что лучшим путем будет отложить запланированный форк Constantinople, который должен был произойти на блоке 7080000, 16 января 2019 года.
Пользователи должны установить новую версию, чтобы избежать нарушения консенсуса.
Кажется, не все майнеры получили такое сообщение. По меньшей мере 10 TH/s майнинговой мощности все еще майнят неофициальную цепочку, согласно мониторингу форка, принадлежащему Ethdevops.io:
Ethereum Classic, который недавно подвергся атаке 51%, имеет меньший хешрейт, чем неподтвержденный форк Constantinople сети Эфириума.
(Источник: etcstats.net)
Уязвимость, о которой идет речь, предполагает особую форму мошенничества, для понимания которого нужны определенные знания. Суть в том, что изменение способа оплаты Эфириума за хранение может позволить провести атаку и это может многого стоить различным приложениям dApps. "Атака двойного входа" является специфической для смарт-контрактов. Это не то же самое, что атака воспроизведения или атака двойных расходов. Это уникальная проблема. Исследователь ChainSecurity, который обнаружил несовершенный код, объясняет это следующим образом:
Необходимо выполнить определенные предпосылки для осуществления уязвимости контракта:
1. Должна существовать функция A, в которой после передачи/отправки происходит операция изменения состояния. Иногда это может быть неочевидным, например, вторая передача или взаимодействие с другим смарт-контрактом.
2. У атакующего должна быть доступна функция B, которая (а) изменяет состояние и (b) чье состояние осуществляет конфликт с функцией A.
3. Функция B должна быть выполнена не меньше чем за 1600 газа (2300 оплата газа - 700 газа для CALL).
Несмотря на то, что уязвимость в реальном блокчейне не была обнаружена, лучше отложить форк, чем потом сожалеть, говорится в официальном блоге Эфириума:
Исследователи безопасности, ChainSecurity и TrailOfBits, провели (и продолжают выполнять) анализ во всем блокчейне. Они не нашли никаких случаев этой уязвимости во внешней среде. Однако до сих пор существует ненулевой риск того, что некоторые аккаунты могут быть взломаны.
Понятно, что в большой децентрализованной сети невозможно вовремя обновить сеть для всех. Смотря на карту нод биткоина, вы увидите, что в настоящее время в сети активно несколько различных версий. Небольшое количество нод Эфириума в настоящее время майнит форк Constantinople, к сожалению, не получая никакого фактического вознаграждения за участие в этом процессе.