Большинство DAO распределяет гранты через snapshot-голосование с фиксированными периодами. Последнеминутные манипуляции, низкая явка, невозможность перераспределить голоса — знакомые проблемы. Мы разрабатываем систему ретроактивного финансирования на основе conviction voting: механики, где голос накапливает вес со временем. Это исключает внезапные перевороты и даёт приоритет proposals с долгосрочной поддержкой.
Наши инженеры реализовали conviction voting для нескольких DAO, включая Gardens (1Hive) и Giveth. Опыт показывает: система в 2–3 раза эффективнее классического snapshot при распределении постоянного потока грантов, так как не требует отдельного голосования по каждому proposal. Экономия на газе достигает 40%.
Как conviction voting работает в системе ретроактивного финансирования?
Conviction voting — это непрерывный процесс. Пользователь голосует, замораживая токены в контракте. Вес голоса растёт с каждым блоком, пока пользователь не снимет ставку. Чтобы proposal прошёл, его суммарная conviction должна превысить динамический порог, зависящий от запрашиваемой суммы и общего стейка. Это кардинально меняет экономику голосования:
- Last-minute manipulation невозможна: whale не может сбросить все голоса в последний блок — нужно накапливать conviction днями.
- Voter apathy не страшна: proposals конкурируют за stake, а не за явку. Пользователь просто перераспределяет свои голоса между активными proposals.
- Приоритизация идёт по накопленной поддержке, а не по времени подачи.
Какие проблемы решает conviction voting в ретроактивных грантах?
Основная боль DAO — как справедливо распределять постоянный поток средств без бюрократии. Conviction voting решает три ключевые задачи:
- Last-minute manipulation: голоса не скидываются в последнюю минуту — защита от whales.
- Отсутствие приоритизации: донаты не идут в порядке поступления, а выбирают наиболее supported proposals.
- Высокие газовые затраты: один контракт обрабатывает все proposals, а не отдельное голосование по каждому.
Как мы проектируем систему conviction voting?
Математическая модель — разработка системы ретроактивного
Сердце системы — функция накопления убеждённости:
conviction(t) = conviction(t-1) * α + votes * (1 - α) где α — коэффициент затухания (типично 0.9). При α = 0.9 полное накопление занимает ~22 периода. Порог прохождения рассчитывается динамически от размера запроса и общего stake.
Математическая модель порога
Порог прохождения пропорционален квадратуре разницы между total supply и суммарным stake. Это защищает от одобрения огромных transfers при малой явке. Формула учитывает maxRatio и minThreshold, задаваемые governance.
Архитектура контракта
Мы используем проверенные паттерны OpenZeppelin: ReentrancyGuard, Math.mulDiv для защиты от overflow. Как отмечается в спецификации Conviction Voting от 1Hive, механизм устраняет краткосрочные манипуляции, заменяя их долгосрочной убеждённостью. Ключевая часть — функция обновления conviction:
function _updateConviction(uint256 proposalId) internal { Proposal storage proposal = proposals[proposalId]; uint256 blocksPassed = block.number - proposal.blockLast; if (blocksPassed == 0) return; uint256 alphaPow = _pow(alpha, blocksPassed); proposal.convictionLast = Math.mulDiv(proposal.convictionLast, alphaPow, PRECISION) + Math.mulDiv(proposal.stakedTokens, PRECISION - alphaPow, PRECISION); proposal.blockLast = block.number; } Все числовые расчёты — с фиксированной точностью PRECISION = 1e7, что исключает переполнения для стандартных размеров токенов (18 decimals).
Симуляция и настройка параметров
Перед деплоем проводим симуляцию на Python/TypeScript. Это позволяет подобрать alpha и maxRatio так, чтобы proposals проходили достаточно быстро, но не слишком — чтобы избежать манипуляций.
| Параметр | Типичное значение | Эффект |
|---|---|---|
| alpha | 0.9 | Скорость накопления conviction: чем ближе к 1, тем медленнее |
| maxRatio | 0.1 (10% treasury) | Максимальная доля treasury, доступная proposal |
| minThreshold | 0.05 (5% staked) | Минимальная conviction для старта proposal |
Что входит в работу
- Анализ параметров DAO и подбор alpha, maxRatio, minThreshold.
- Проектирование архитектуры смарт-контрактов (Vault, ConvictionVoting, Governor с таймлоком).
- Разработка контрактов на Solidity 0.8.x с использованием Foundry. Модульное тестирование с покрытием 95%+.
- Аудит безопасности: проверка на overflow, reentrancy, корректность threshold. Используем статические анализаторы Slither и Echidna для fuzzing.
- Деплой на Ethereum или L2 (Polygon, Arbitrum). Настройка фронтира (визуализация conviction, управление стейками).
- 3 месяца поддержки после деплоя: мониторинг, обновления при необходимости.
Сравнение подходов
| Аспект | Snapshot | Conviction Voting |
|---|---|---|
| Стойкость к манипуляциям | Низкая | Высокая (нужно время) |
| Явка избирателей | Критична | Не критична (stake перераспределяется) |
| Приоритизация proposals | По времени | По накопленной поддержке |
| Газовые затраты | Высокие | Низкие (один контракт) |
Ориентировочные сроки
Полный цикл: от 2,5 до 3 месяцев. Стоимость рассчитывается индивидуально после уточнения параметров и объёма работ. Гарантия корректности контрактов и 3 месяца поддержки включены.
Свяжитесь с нами для обсуждения вашей DAO. Оценим проект и предложим оптимальные параметры. Закажите разработку под ключ — от анализа до деплоя. Получите консультацию по параметрам вашей системы.







