Исследователи обнаружили 34 200 уязвимых смарт-контрактов на платформе Ethereum. Протестировав 3 тыс. из них, специалисты установили, что дыры в контрактах позволили бы украсть 6 млн долларов в Ethereum, сообщает Motherboard.
Почему это опасно
Илья Сергей, помощник профессора из Университетского колледжа Лондона и соавтор исследования, заявил:
Мы работаем с приложениями, у которых есть две очень неприятных особенности: они используются для управления вашими деньгами и их нельзя исправить.
Смарт-контракт — это самоисполняемый код в блокчейне. Для человека код смарт-контракта не несёт особого смысла, поэтому его анализ довольно сложен. И часто уязвимости обнаруживаются, когда уже слишком поздно. Так, в ноябре 2017 года пользователь под ником DevOps199 нашел дыру в коде библиотеки Ethereum-кошелька Parity и случайно заблокировал 150 млн долларов.
Суть исследования
Учёные рассматривали Ethereum как торговый автомат. Они стремились найти все возможные уязвимости — проще говоря, заставить автомат обслуживать пользователя бесплатно.
Исследователи скачали блокчейн Ethereum и стали запускать на нём локально различные сценарии, чтобы выявить проблемы. Результат — 34 200 контрактов с отслеженными уязвимостями.
Проверив свои предположения на 3 тыс. контрактов, исследователи в 89% случаев получали ожидаемый результат. Теоретически они могли бы украсть 6 млн долларов в криптовалюте.
Аналитики пытались связаться с авторами смарт-контрактов, но никто не гарантирует, что те бы их послушали. Собственно, с Parity произошло то же самое: компания отложила исправление проблемы на несколько месяцев и оказалась под ударом.
Впрочем, данные об уязвимых смарт-контрактах исследователи не выкладывают в открытый доступ. Сергей отметил:
Если кто-то захочет воспользоваться нашей идеей, ему, по крайней мере, придётся проделать столько работы, сколько сделали мы.