13 октября Фонд Эфириума выпустил в своем блоге заявление о хардфорке EIP150, изменяющем стоимость газа при проведении транзакций. Это обновление должно устранить возможности для DDoS-атак, от которых сеть Эфириума страдает уже несколько недель, или, по крайней мере, сделать их значительно более затратными для атакующих.
В течение трех последних недель, сеть Эфириума стала мишенью постоянных атак. Злоумышленники продемонстрировали высокую квалификацию в обнаружении уязвимостей как в основных клиентах, так и в базовом протоколе.
Несмотря на то, что последние апдейты существенно увеличили сопротивляемость клиентского кода, окончательное предотвращение атак требует изменений ценовой политики Виртуальной Машины Эфириума (EVM) на уровне протокола.
Для обычных пользователей атаки выразилось в замедлении транзакций – возникли трудности с включением в блоки новых транзакций, а полные узлы страдают от ограничений по памяти при обработке состояний, раздутых пустыми операциями.
Меры, предложенные Фондом:
- В качестве временной меры (до хардфорка) всем майнерам предлагается снизить газ лимит до 500 000 единиц газа на блок
- Хардфорк, получивший обозначение EIP 150 версия 1c, будет реализован на блоке 2 457 000.
- Стоимость ряда операций (опкодов) будет приведена в соответствие с соответствующему этим опкодам объему вычислений.
- Вскоре после окончания первого хардфорка и по его результатам будет проведен второй, который ликвидирует последствия атак – «раздутое состояние» блоков. Целью второго форка будет очистка блокчейна от пустых акаунтов – таких, в которых отсутствует код, баланс, нет сохраненных данных, а одноразовые коды (nonce) равны нулю.
Необходимые исправления уже реализованы в клиентах (Go Ethereum, Parity), и в настоящее время происходит их расширенное тестирование на отсутствие уязвимости нарушения консенсуса.
Коды всех исправлений выложены на Ethereum Bug Bounty.
Разработчик Go Ethereum (geth) Джефф Вилке (Jeff Wilcke) подтвердил общий консенсус по поводу форка, сообщив, что окончательная версия geth с кодом EIP150 будет выпущена в ближайшее время. Примерно такая же информация поступила от Parity – разработчик Томаш Дряга (Tomasz Drwięga) из Ethcore сказал:
"Мы уже реализовали пакет поправок EIP150 1c в Ethcore.Parity и код проходит тестирование. Точная дата пока неизвестна."
Мнение сообщества по по поводу будущего хардфорка остается положительным, и противоречий не возникает, поэтому на социальном уровне событие пройдет достаточно спокойно. Пока нет никакой информации, что кто-либо пожелает остаться на цепи, уязвимой к DoS атакам.
Однако на техническом уровне злоумышленник вполне может попытаться использовать форк для возможного раздвоения цепи, или использовать какую-либо новую уязвимость, возникшую в результате хардфорка, ведь он уже доказал свою высокую квалификацию.
Поэтому в течение хардфорка и непосредственно после, со стороны разработчиков, а может, и с другой, будет существовать напряженность. Так что отличие предстоящего хардфорка от предыдущего будет заключаться в том, что опасность исходит не от сообщества, а от квалифицированного злоумышленника с достаточным финансированием.
Рынок ETH, тем временем, после некоторого снижения остается спокойным и полагается на высокую квалификацию разработчиков. Однако временные меры по уменьшению газ лимита не позволяют выполнять код ряда Dapps (лимит снижен до 500К, а например, краудфандинговый контракт недавней ИКО FirstBlood требовал минимума 1 500 000 единиц газа), поэтому со стороны разработчиков и владельцев Dapps есть некоторое давление по срокам.
Обновление на 22:00 14 октября
В связи с необходимостью дополнительного тестирования, активация хардфорка была передвинута разработчиками на блок номер 2 463 000. Это сдвинет событие примерно на 17 часов.