Сначала учёные скачали блокчейн Ethereum на новое устройство и один за другим стали запускать разнообразные сценарии, пытаясь добиться нежелательных последствий. Каждый раз, при обнаружении очередной проблемы, исследователи помечали смарт-контракт.
Таким образом специалистам удалось просмотреть около миллиона смарт-контрактов и 34 200 из них содержались критические уязвимости. Они проверили свои предположения на 3000 смарт-контрактах, и в 89% случаев вызвали те самые нежелательные последствия (их намеренно не называют, чтобы не подвергнуть все контракты неоправданному риску).
Эксперты считают, что чем раньше станет возможным обнаружение уязвимости, тем быстрее могут быть предотвращены возможные негативные последствия.
Для примера, в конце 2017 года пользователь под псевдонимом DevOps19 нашел уязвимость в коде библиотеки Ethereum-кошелька Parity и случайно заблокировал 150 миллионов долларов.
«Мы работаем с приложениями, у которых есть две очень неприятных особенности: они используются для управления вашими деньгами и их нельзя исправить», — пояснили исследователи.
Создатели уязвимых смарт-контрактов пока не идентифицированы, поэтому все такие контракты считаются относительно безопасными до момента публичного заявления их владельцев и придания гласности типа ошибки.