Розробка системи паузи смарт-контрактів при аномаліях
Pause механізм—базовий елемент безпеки для будь-якого DeFi протоколу, що працює з коштами користувачів. Коли починається експлойт, у команди є хвилини, іноді секунди, щоб зупинити утечку. Ручна реакція неможлива—потрібна автоматика. Але помилкова пауза також наносить ущерб: заблоковані транзакції, недовіра користувачів, потенційні ліквідації.
Задача—побудувати систему, яка паузує контракт при реальних аномаліях з мінімумом false positives, без самої став ши вектором атаки.
Pausable контракт: базова реалізація
OpenZeppelin Pausable—стандартна стартова точка:
contract ProtectedVault is Pausable, AccessControl {
bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
bytes32 public constant GUARDIAN_ROLE = keccak256("GUARDIAN_ROLE");
function pause() external onlyRole(GUARDIAN_ROLE) {
_pause();
}
function unpause() external onlyRole(DEFAULT_ADMIN_ROLE) {
// DEFAULT_ADMIN = timelock / multisig governance
_unpause();
}
function deposit(uint256 amount) external whenNotPaused { ... }
function withdraw(uint256 amount) external whenNotPaused { ... }
}
Ключове: різні ролі для pause та unpause. Автоматичний guardian може бути скомпрометований—але unpause тільки через multisig.
Аномалії: що детектувати
TVL Anomaly—Резке падіння
Якщо > X% TVL вийде за N блоків—щось не так. Може бути легітимним (whale withdrawal) або експлойтом.
Нетипово крупна єдина транзакція
Якщо одна транзакція виводить > Y% від TVL: не паузуємо автоматично—тільки логуємо для off-chain.
Reentrancy Detection On-Chain
Додатковий механізм до стандартного nonReentrant. Замість revert—пауза всього контракту.
Off-Chain мониторинг з автопаузою
On-chain детектори обмежені. Off-chain мониторинг потужніший.
OpenZeppelin Defender
Sentinel + Autotask—стандартний стек. Вказуємо умови, Defender викликає наш Autotask.
Forta Network
Децентралізована detection bot мережа. Написати detection bot на TypeScript.
Circuit Breaker паттерн
Більш гнучкий за повну паузу—rate limiting на аномаліях. Не повна пауза—просто відклад операцій.
Governance над pause механізмом
Pause функція сама може стати вектором атаки. Захисти:
Time-limited pause: Автоматична unpause через N блоків якщо governance не продовжить.
Multisig pause: Пауза потребує 2-of-3 guardian-ів.
Терміни
Базовий Pausable з OZ Defender—2-3 тиж. Повна система з circuit breaker, Forta—5-7 тиж.







