Безопасность смарт-контрактов — это не один класс ошибок. Это система предположений, которая может дать сбой на уровнях кода, данных, управления (governance) и исполнения (execution).
Рентабельность (reentrancy) может возникать, когда внешний вызов происходит до того, как внутреннее состояние будет полностью зафиксировано. Она может переходить между функциями через колбэки, хуки или общий учет (accounting), а не просто повторять один очевидный путь вывода средств. Более безопасный шаблон — сначала проверить условия, обновить состояние и только затем взаимодействовать с внешними контрактами, подкрепив это защитными механизмами (guards) и противодействующими тестами в условиях атаки.
Риск оракула начинается с входных данных цены. Протокол может выполнять правильную арифметику, но все равно потерпеть неудачу, если он использует манипулируемый пул, устаревшее обновление или хрупкий fallback. Командам нужны пороги ликвидности, проверки актуальности, ограничения на допустимое отклонение и документированный порядок действий, когда поступающие данные становятся ненадежными.
Усовершенствуемость добавляет ещё один уровень. Прокси может позволить быстро устранять ошибки, но также создаёт полномочия над логикой реализации. Пользователи должны понимать, кто контролирует эти полномочия: защищены ли они мультисигом и тимлоком, и как проверяется изменение хранилища. Требуются такие же внимание к контролю доступа, арифметическим пограничным случаям, уязвимостям, связанным с MEV, и сценариям отказа в обслуживании.
Важная привычка — безопасность жизненного цикла. Протестируйте инварианты перед развертыванием, отслеживайте работу живой системы, пересматривайте изменения зависимостей и протоколов, отрепетируйте процедуры паузы и восстановления и заново оценивайте каждое обновление.
Руководство TokenToolHub связывает эти паттерны отказов, помогая разработчикам и пользователям оценивать, как ведёт себя всё приложение, а не только выглядит ли безопасной одна функция.
https://tokentoolhub.com/smart-contract-risks-re-entrancy-oracles-upgrades/
#SmartContracts #defi #Ethereum #CryptoSecurity #Web3