Разработка системы ретроактивного финансирования общественных благ

Большинство DAO распределяет гранты через snapshot-голосование с фиксированными периодами. Последнеминутные манипуляции, низкая явка, невозможность перераспределить голоса — знакомые проблемы. Мы разрабатываем систему ретроактивного финансирования на основе **conviction voting**: механики, где голос

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Большинство 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 решает три ключевые задачи:

  1. Last-minute manipulation: голоса не скидываются в последнюю минуту — защита от whales.
  2. Отсутствие приоритизации: донаты не идут в порядке поступления, а выбирают наиболее supported proposals.
  3. Высокие газовые затраты: один контракт обрабатывает все 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. Оценим проект и предложим оптимальные параметры. Закажите разработку под ключ — от анализа до деплоя. Получите консультацию по параметрам вашей системы.