Критические ошибки в смарт-контрактах Эфириум разочаровывают разработчиков

12697495_ethereum-smart-contract-issues-frustrate_1dd7d170_m

Всего через несколько недель после хард-форка с целью ухода от DoS-атак сеть Эфириум и её разработчики столкнулись с ещё одной серьёзной уязвимостью. На этот раз в смарт-контрактах обнаружилась ошибка, способная свести на нет все усилия создателей децентрализованных приложений в сети Эфириум.

1 ноября команда разработчиков Эфириум и основатель Solidity уведомили пользователей и разработчиков об ошибке, в результате которой становится возможным перезаписать значения сохранённых переменных.

Переменными в смарт-контрактах являются соглашения заключённые между двумя или более сторонами. Таким образом, если злоумышленник получит доступ к хранилищу и изменит значения переменных, то это может затронуть важные соглашения в децентрализованных приложениях и позволить злоумышленнику вывести чужие средства, что может побудить разработчиков отказаться от старых проектов, основанных на смарт-контрактах и перекомпилировать контракты.

Кристиан Райтвисснер из команды Эфириума пояснил:

Это означает, что если злоумышленник сможет вывести за верхнюю границу значение первой переменной, то вторую переменную можно будет изменить. Вывести за верхнюю границу первую переменную можно при помощи арифметической функции или непосредственно задавая ей значение данных вызова (значения в данных вызова округляются до 32 байт и дополнение не может быть ни подтверждено, ни принудительно установлено).

Разработчики Эфириума, включая Энсела Линднера, говорят, что эта ошибка делает разработку Эфириум-приложений невозможной.

Линднер пишет:

«Только представьте – год работать над приложением для Эфириум, чтобы в результате обнаружить, что оно не может работать.»

Он также отметил, что, как и в случае с Geth, негативное воздействие на сеть которого ощущалось в течение нескольких недель, эта ошибка в смарт-контрактах, скорее всего, повлечёт за собой серию других потенциально фатальных ошибок.

Линднер добавил:

«Я бы согласился, что конкретно эта ошибка, вероятнее всего, лишь маленький камешек на склоне горы подобных потенциально неразрешимых ошибок.»

Райтвисснер поясняет, что, к счастью, проблема не затрагивает контракты кошельков Эфириум с мульти-подписью. Однако она с большой вероятностью повлияет на контракты, состоящие из двух и более контрактов:

«Проблема может затронуть контракты, содержащие две или более смежных переменных состояния, если сумма их размеров меньше 256 бит и первая переменная состояния не является целым числом со знаком и не относится к типу bytesNN.»

Райтвисснер рекомендует разработчикам деактивировать и вывести средства из уже активированных смарт-контрактов и скомпилировать новые соглашения, используя релиз Solidity 0.4.4. Невыполнение этой рекомендации может привести к потере средств, а также серьёзно повлиять на выполнение децентрализованных приложений, основывающихся на этих контрактах.

На сегодняшний день команда разработчиков Эфириума обнаружила 10 уязвимых смарт-контрактов, 7 из которых были пригодны для использования.

Райтвиснер добавил:

«Получается, что уязвимыми оказались только 10 контрактов, так что мы смогли оперативно связаться с большинством их владельцев и разработчиков. Семь из этих десяти контрактов предназначены для использования только владельцем, так что они могут изменить определённые параметры за пределами допустимого диапазона либо просто разблокировать заблокированные ранее контракты.»

Источник: cryptocoinsnews.com



Рубрики:Важное, Проишествия, Ethereum, смарт-контракты, эфир

Метки: , ,

1 reply

  1. Критические ошибки в смарт-контрактах Эфириум разочаровывают разработчиков в себе

    fxd.

    Solidity сторонний инструментарий созданный для удобства. Вот им начало возвращаться все то. что они наговорили проталкивая дао хардфорк. Эфириум уже сломан.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s