Розробка механізму rage quit
Rage quit — право учасника DAO вийти з організації та забрати пропорціональну долю treasury до виконання пропозалу, з яким він не згоден. Механіка прийшла з Moloch DAO (2019) і вирішує фундаментальну проблему governance: minority protection. Без rage quit мінорітарний учасник, програвши голосування, може або прийняти рішення, або продати долю на ринку. З rage quit — третій варіант: вийти з честною долею активів.
Moloch-style rage quit: класична реалізація
Moloch V2/V3 — референс реалізація. Учасники тримають shares (не ERC-20, а внутрішній облік) та loot (shares без voting power). Rage quit конвертує shares/loot в пропорціональну долю treasury токенів.
Структура аналогічна англійській версії. Ключова захист: highestIndexYesVote lock — блокує rage quit поки пропозал, за який голосував користувач, не обробіться.
Nouns-style fork: protocol-level rage quit
Nouns V3 реалізує більш масштабний rage quit — не вихід одного учасника, а fork всієї DAO. Якщо достатній % token-холдерів в escrow (наприклад 20%) — створюється новий fork DAO з пропорціональною долею treasury.
Механіка: escrowToFork задепонує токени, якщо escrow перевищує forkThreshold — fork активується, NounsToken та Governor деплоюються для fork DAO, treasury розділяється пропорційно.
ERC-20 DAO з rage quit (Governor + Rage Quit)
Для ERC-20 DAO rage quit складніше — токени fungible та freely tradable. Механіка повинна розв'язати: користувач повинен lock токени для участі в rage quit чи може вийти з будь-яким балансом?
Vault-based rage quit
Учасники депонують токени в vault (отримують receipt токени), vault бере участь у governance. Rage quit — burn receipt токенів, отримати пропорцію vault активів.
Rage quit window: критичний параметр
Rage quit window — період між прийняттям пропозалу та його виконанням, протягом якого несогласні можуть вийти. По суті це Timelock з rage quit функціональністю.
| Параметр | Типове значення | Міркування |
|---|---|---|
| Rage quit window | 3–7 днів | Повинен бути достатнім для реакції |
| Voting period | 3–7 днів | Інформує про прийняті рішення |
| Execution delay | Rage quit window + buffer | Timelock >= rage quit window |
| Min stake для участі | 0 (будь-який holder) | Або threshold для запобігання spam |
Типова помилка: Timelock коротший ніж rage quit window. Якщо пропозал виконується через 24 години, а rage quit window — 3 дні, механіка не працює.
Gas оптимізація
Rage quit з великим списком токенів дорогий — перебір всіх активів. Оптимізації:
- Claim по одному токену: користувач вказує конкретні токени для отримання, не всі
- Merkle distribution: для великої кількості активів — snapshot + merkle tree
- Pull payment pattern: кошти резервуються, користувач забирає окремо
Коли rage quit не підходить
Rage quit ефективний для treasury DAO (тримають fungible активи). Для operational DAO (виконують роботу) — складніше: treasury може складатися з illiquid активів (NFT, vesting токени, LP позиції). Rage quit на illiquid активи потребує або негайної ліквідації (втрати), або відстрочених виплат.
У таких випадках розглядають token buyback механізм або exit fee як альтернативу прямому rage quit.







