Разработчики Ethereum Core объявили во вторник, что отложат свой долгожданный хард-форк в Константинополе.
Команда, ранее назначившая 16 января официальной датой обновления блокчейна Ethereum, решила отложить его после того, как ChainSecurity обнаружит потенциальные уязвимости в коде. Швейцарская аудиторская фирма по блокчейну заявила, что в Константинополе будет организована «атака с повторным входом», при которой пара хакеров может использовать код для имитации безопасной службы казначейства.
[SECURITY ALERT] #Constantinople обновление временно отложено из-за осторожности после принятия консенсусным решением #Ethereum разработчики, специалисты по безопасности и другие участники сообщества. Более подробная информация и инструкции приведены ниже. https://t.co/p2znO8HGxf
— Эфириум (@ethereum) 15 января 2019 г.
Более низкая стоимость газа может вызвать проблемы с безопасностью
В ретроспективе атака повторного входа происходит, когда смарт-контракт связывается с внешним смарт-контрактом, вызывая его. Если иностранная организация оказывается злонамеренной, она может воспользоваться функцией вызова и взять под контроль первый смарт-контракт. Эта уязвимость может позволить внешнему интеллектуальному контракту неожиданно вносить изменения в код хоста. Например, такой злоумышленник может многократно снимать эфирные средства путем «повторного входа» в определенную строку в Кодексе.
В случае с Константинополем ChainSecurity обвинила более дешевые затраты на газ в том, что они подстегнули возможность повторной атаки. По словам фирмы, две стороны могут совместно получать средства, решать, как их разделить, и получать выплату, если они соглашаются, просто используя контракт «PaymentSharer».» упоминается в коде хард-форка.
«До Константинополя каждая операция по хранению стоила бы как минимум 5000 газов», — писал Константинополь. «Это намного превышает бензиновую стипендию в 2300, отправленную при заключении контракта с использованием« передачи »или« отправки »».
Мы благодарны нашему неутомимому сообществу, которое проводит тесты для обеспечения безопасности перед любым выпуском. После тщательного рассмотрения, #Ethereum«s #Constantinople обновление будет отложено из-за уязвимости, обнаруженной @chain_security,#Thirdeninghttps://t.co/INC7be2a6Q
— ConsenSys (@ConsenSys) 15 января 2019 г.
Фирма добавила, что замена грязных мест хранения после Константинополя обойдется всего в 200 газов. Злоумышленник может манипулировать кодом контракта жертвы, чтобы преобразовать его в грязный: при поддержке публичной функции, которая изменяет требуемую переменную.
«Затем, заставляя уязвимый контракт вызывать контракт злоумышленника, например, сmsg.sender.transfer (...)
Контракт злоумышленника может использовать газовую стипендию 2300 для успешной манипуляции с переменной уязвимого контракта », — полагает ChainSecurity.
Пока нет уязвимых контрактов
Компания ChainSecurity провела аудит Ethereum по всей цепочке и обнаружила, что ошибка повторного входа еще не повлияла ни на один умный контракт. Ядро также добавило, что их решение отложить хард-форк было принято после подробного обсуждения с исследователями безопасности, заинтересованными сторонами Ethereum, разработчиками, операторами узлов и другими аналогичными важными сторонами сообщества.
Виталик Бутерин, соучредитель Ethereum, подчеркнул, что небольшая уязвимость безопасности не обязательно означает, что основной код имеет недостатки.
«Если у вас есть N возможностей протокола, есть N2 пути, которыми они могут потенциально сломаться », — написал он в Reddit. "Я бы сказал [that] Мой личный вывод из этого состоит в том, чтобы быть более четким в отношении записи инвариантов (свойств, гарантируемых протоколом), на которые мы полагаемся, чтобы мы могли проверять их при изменении ».
MyCrypto.com, интерфейс блокчейна с открытым исходным кодом, также поддержал мнение Бутерина.
Например…
— Разработчик написал, проверил, протестировал и развернул умный контракт в прошлом
— невозможно использовать умный контракт
— Константинопольское обновление выходит в эфир
— Теперь возможно использовать смарт-контракт из-за изменений, внесенных в EIP1283.— MyCrypto.com (@MyCrypto) 15 января 2019 г.
«Реализация EIP1283 была разумной», — написала компания в одном из своих твитов. «Код в порядке. Идея позади этого прекрасна. В коде этого EIP нет «ошибки». Он делает то, что задумано. Потенциальная уязвимость лежит на уровне контракта, а не на уровне EVM / кода операции / EIP ».
Пост Что заставило Ethereum задержать их долгожданного хард-форка? появился первым на NewsBTC.