Розробка conviction voting (непрерывне голосування)
Стандартне snapshot-голосування в DAO страждає від кількох проблем: voting period фіксований, whale може притримати голоси до останнього моменту, кожен пропозал — окрема голосувальна подія з низькою явкою. Conviction voting вирішує через принципіально іншу механіку: голос накопичує «убеждённость» зі часом, а пропозал проходить коли накопичена убеждённость перетинає динамічний поріг.
Gardens (1Hive), TE Commons, Giveth використовують conviction voting для управління treasury grants. Механіку розробив Jeff Emmett, детально описав у Gardens whitepaper.
Математична модель
Серце системи — функція накопленця убеждённості:
conviction(t) = conviction(t-1) * α + votes * (1 - α)
де:
-
α(alpha) — коефіцієнт затухання, 0 < α < 1. Типово: 0.9 (повільне) до 0.5 (швидке) -
votes— поточний вес голосів за пропозал -
conviction(t)— накопичена убеждённість у момент t
При α = 0.9: для досягнення 100% conviction при постійних votes потрібно ~22 періоди (дні). Це означає: ранні поддержувачи накопичують більш conviction, пізні маніпуляції менш ефективні.
Поріг прохідження також динамічний, залежить від розміру запиту відносно доступного treasury:
threshold = threshold_min + (total_supply² * max_ratio) / (requested_amount * (total_supply - staked)²)
Логіка: чим більший % treasury запрашує пропозал, тим вищий поріг. Захищає від одобрення огромних transfers при малій явці.
Архітектура контракту
Повна реалізація близька до англійської версії. Ключові параметри (α, maxRatio, minThreshold) мають бути настроєні під конкретну DAO та розмір treasury.
Стандартні параметри Gardens: alpha = 0.9, maxRatio = 20%, minThreshold = 2%.
Alpha — найчутливіший параметр. При alpha = 0.9 та періоді обновлення 1 блок (12 сек) на Ethereum: повне накопленння conviction до 95% максимуму займає ~28 днів. Це дає часу достатньо для нарастання підтримки, але робить систему повільною. Для L2 з швидкими блоками — потрібно нормалізувати alpha до реального часу.
Процес розробки
Дизайн (1 тиждень). Параметри alpha, maxRatio, minThreshold — під конкретну DAO та розмір treasury. Інтеграція з існуючим токеном. Vault архітектура.
Розробка контрактів (3-4 тижні). ConvictionVoting + Vault + параметри governance + comprehensive тести.
Симуляція параметрів (3-5 днів). Python/TypeScript симуляція: як швидко проходять propozals при різних параметрах, наскільки ефективна захист від whale маніпуляції.
Аудит (2 тижні). Особливу увагу: overflow в conviction обчисленнях, коректність threshold формули, reentrancy в executeProposal.
Frontend (2-3 тижні). Dashboard propozals, stake management, conviction visualization, мобільна адаптація.
Повний цикл: 2,5-3 місяці.







