изучено: role-based access control, passable и circuit breaker
💀 выжимка изученного:
🟠role-based access control (RBAC)
RBAC - это способ управлять доступом к функциям контракта через роли
каждой роли присваиваются права. например:
роль ADMIN может добавлять новых пользователей и менять настройки
роль MINTER может создавать токены
роль USER может только взаимодействовать с базовыми функциями
пример: контракт токена. Только тот, кто имеет роль MINTER, может вызвать функцию mint(). Если обычный пользователь попытается вызвать её, транзакция отклонится.
RBAC делает контракт безопасным и управляемым, особенно если в системе много участников с разными правами
🟠passable
passable - это шаблон или утилита, которая позволяет временно передавать права или управление другим контрактам или пользователям
пример: есть контракт проекта, а один пользователь должен временно управлять функцией без постоянной роли. Через passable можно передать права на определённое время или определённую функцию, а затем они автоматически возвращаются
это удобно для делегирования, тестирования или временного доступа
🟠circuit breaker
circuit breaker - это защитный механизм, который позволяет остановить работу функций контракта при ошибках или атаках
пример: контракт DeFi платформы. Если обнаружена уязвимость, админ может включить circuit breaker. Тогда все критические функции (например withdraw) блокируются до устранения проблемы
идея взята из реальной электроники: если возникает перегрузка, выключатель разрывает цепь, чтобы не сгорело устройство. В Solidity это делается через флаг в контракте, который проверяется перед выполнением критических функций
главная цель circuit breaker - снизить риск потерь и защитить пользователей при сбоях или атаках