DeFi-протоколу нужно отложенное исполнение административных действий. Без таймлок-контракта аудиторы забракуют проект — это базовая гарантия безопасности. После серии взломов DeFi-платформ в начале десятилетия таймлок стал обязательным требованием для листинга на централизованных биржах. Мы разрабатываем такие контракты под ключ: от простой интеграции OpenZeppelin до кастомных решений с гибкой задержкой и контрольными ролями. За 5 лет работы мы реализовали 10+ DeFi-протоколов с разной архитектурой управления. Команда имеет 7+ лет опыта в разработке смарт-контрактов и провела аудит для 15 проектов.
Compound Finance ввёл таймлок-контракт в мейнстрим. Их Timelock.sol — двухдневная задержка перед исполнением любых изменений протокола — стал стандартом после того, как несколько DeFi-протоколов потеряли средства из-за мгновенных admin-операций. Сейчас таймлок — это базовое требование любого аудитора и первый вопрос на листинге.
Как настроить таймлок-контракт за 5 шагов
- Определите операции, требующие задержки (изменение комиссий, смена owner, обновление контрактов).
- Выберите задержку для каждой операции (мин. 48 часов для production).
- Выберите платформу: OpenZeppelin TimelockController или кастомный контракт.
- Интегрируйте с Governor или мультисигом.
- Напишите тесты и проведите аудит.
OpenZeppelin TimelockController позволяет настроить таймлок в 2 раза быстрее, чем написание кастомного решения, и проверен тысячами проектов.
Как мы реализуем таймлок-контракты?
Мы используем два подхода — выбор зависит от архитектуры протокола и потребностей в управлении.
| Характеристика | OpenZeppelin TimelockController | Кастомный таймлок |
|---|---|---|
| Готовность | Мгновенно, обширные тесты | Пишется под задачу, 2–3 дня |
| Гибкость задержек | Одна задержка на все операции | Разные задержки для разных ролей/функций |
| Интеграция с Governor | Встроенная (GovernorTimelockControl) | Ручная настройка |
| Экстренный bypass | Нет встроенного | Реализуется через Pausable + отдельная роль |
| Аудит | Многократно проверен | Требуется отдельный аудит |
Для нового протокола мы рекомендуем начинать с TimelockController — он покрывает 80% случаев. Кастомный таймлок оправдан, когда нужны разные задержки для изменения fee (48 часов) и смены admin (7 дней), или интеграция с мультисигом без Governor.
Детали реализации bypass-механизма
В экстренных случаях, например при обнаружении уязвимости, используется Pausable контракт с отдельной ролью. Паузатор только останавливает протокол, не меняя логику. Важно, чтобы bypass был ограничен: он не должен позволять выполнять обычные admin-операции вне очереди.Почему важна минимальная задержка?
48 часов — минимум для production-протокола. Меньше — пользователи не успевают вывести ликвидность или отозвать одобрения. Стандарт DeFi-протоколов: 24–72 часа для параметров, 7 дней для смены owner. Мы всегда проверяем, чтобы задержка была достаточной: клиенты часто просят 1 час из соображений удобства — это грубая ошибка.
uint256 public constant MIN_DELAY = 2 days; uint256 public constant MAX_DELAY = 30 days; Критичные детали реализации
Предотвращение replay-атак
Каждая операция идентифицируется хэшем параметров плюс salt. Без salt одна и та же операция (например, setFee(100)) может быть поставлена в очередь только один раз. С salt — любое количество раз. Убеждаемся, что клиент понимает это поведение.
Экстренные функции
Почти всегда нужен bypass для критических ситуаций — если найдена уязвимость, нельзя ждать 48 часов. Паузатор (Pausable) с отдельной ролью — стандартное решение. Но паузатор, в свою очередь, должен быть ограничен: он только останавливает, не меняет логику.
Базовые настройки таймлока
| Параметр | Рекомендуемое значение |
|---|---|
| Минимальная задержка | 48 часов |
| Максимальная задержка | 30 дней |
| Роль Proposer | Адрес губернатора |
| Роль Executor | Любой (открытый) |
| Роль Canceller | Мультисиг |
Что входит в работу?
- Анализ архитектуры протокола и требований к задержкам
- Выбор и настройка OpenZeppelin TimelockController или написание кастомного контракта
- Интеграция с существующим Governor или мультисигом
- Написание unit-тестов (coverage >95%) и fuzzing-тестов
- Публикация с верификацией на Etherscan
- Документация для команды (описание ролей, процедур отмены)
- Поддержка в течение 30 дней после деплоя
Интеграция с Governor
Для полноценного on-chain управления цепочка выглядит так: Governor → TimelockController → Protocol. Голосование проходит в Governor, победившее предложение ставится в очередь TimelockController, после задержки исполняется. Главная ошибка — дать TimelockController прямой admin-доступ к протоколу, минуя Governor. Это делает голосование декоративным.
Сроки
Деплой TimelockController с конфигурацией ролей — 1 день. Кастомный таймлок с несколькими уровнями задержки — 2–3 дня. Интеграция с существующим Governor — 1–2 дня в зависимости от архитектуры протокола. Тесты и документация включены в оценку.
Свяжитесь с нами для оценки вашего проекта — мы подберём оптимальную архитектуру таймлок-контракта и гарантируем прохождение аудита. Закажите разработку таймлок-контракта для вашего протокола уже сегодня.







