Solidity. Смарт контракты и аудит
2.62K subscribers
246 photos
7 videos
18 files
555 links
Обучение Solidity. Уроки, аудит, разбор кода и популярных сервисов
Download Telegram
Интересный баг в протоколе EigenLayer

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

Вот ссылка на него.

Дело в том, что разработчики создавали цикл for и уже внутри него были условия if/esle. И если для условия else они поставили ++i, т.е. переход на следующий шаг цикла, то для if условия - забыли. В итоге получилось, что цикл исполнялся один раз в if, что приводило к проблемам в дальнейшем коде.

Много раз встречал, что для экономии газа, инкремент прохода в цикл лучше ставить в unchecked в конце кода вместо установки его в аргументах for, но никогда не задумывался, что может однажды случиться такой прецедент.

Будьте внимательны с циклами!

#for #loop
👍8