Разработка DeFi-протокола с аудитом и gas-оптимизацией

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1305 услуг
Разработка DeFi-протокола с аудитом и gas-оптимизацией
Сложный
от 2 недель до 3 месяцев
Часто задаваемые вопросы

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

Этапы блокчейн-разработки

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

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

Разработка DeFi-протокола

Команда запускает лендинг-протокол, вдохновлённый Aave v3. На этапе тестирования всё работает. После деплоя на mainnet через 48 часов оракул Chainlink возвращает устаревшую цену — liquidation threshold пробивает безопасные позиции. Ликвидаторы дренируют залоговый пул на $400K, пока команда разбирается в чём дело. Проблема не в самом Chainlink — в отсутствии staleness check: контракт не проверял updatedAt из latestRoundData(). Наша команда сталкивалась с подобными инцидентами и выработала системный подход к разработке DeFi-протоколов, включая смарт-контракты для lending protocol, AMM, cross-chain bridge, а также liquidity pool для yield farming.

Разработка DeFi-протокола — это не просто Solidity-код. Это система инвариантов, которые должны держаться при любых рыночных условиях, MEV-атаках и форс-мажорах на уровне инфраструктуры. Мы используем формальные спецификации и property-based тесты для выявления уязвимостей на ранних этапах. Гарантируем прозрачность на каждом этапе.

Почему DeFi-протоколы ломаются на этапе дизайна

Oracle manipulation через flash loan

Типичная схема: атакующий берёт flash loan на 50M USDC в Aave, манипулирует ценой в Uniswap v2 пулу с низкой ликвидностью, использует этот пул как ценовой оракул, занимает под завышенный залог, не возвращает займ. Протоколы, которые используют token.balanceOf(pool) или spot price из AMM как оракул — уязвимы по определению.

Защита работает на нескольких уровнях:

  • TWAP вместо spot price. Uniswap v3 предоставляет OracleLibrary.consult() для расчёта time-weighted average price. Окно в 30 минут делает flash loan манипуляцию экономически невыгодной — нужно удерживать позицию несколько блоков, каждый с риском арбитража.

  • Chainlink с fallback. Primary source — Chainlink, fallback — Uniswap v3 TWAP. Если Chainlink возвращает цену с updatedAt старше 3600 секунд или answer < 0 — переключение на TWAP с emit события для мониторинга.

  • Circuit breaker на отклонение. Если цена за один блок изменилась более чем на 15% — транзакция реверсируется. Параметр настраивается через governance с timelock.

Reentrancy в cross-protocol взаимодействиях

AMM-протокол вызывает токен при swap. Если токен реализует ERC-777 с tokensReceived хуком — атакующий контракт получает управление в середине swap, до обновления внутренних балансов пула. Это не теория: атака на Uniswap v1 через ERC-777 была одной из первых публичных эксплойтов на DEX. Подробнее о reentrancy можно прочитать на Wikipedia.

В современных протоколах проблема усложняется: callback-паттерны (uniswapV3SwapCallback, flashLoanReceiver) намеренно передают управление внешнему коду. Защита строится через invariant check: перед callback фиксируется состояние, после — проверяется что инварианты соблюдены.

Liquidation mechanics и bad debt

При резком падении рынка на 40%+ за один блок (Ethereum в кризисный период упал на 50% за несколько часов) liquidation может не успеть. Залог стоит меньше долга — протокол получает bad debt. Compound v2 столкнулся с этим, MakerDAO ввёл механизм Emergency Shutdown именно как последний рубеж.

Параметры ликвидации требуют математического моделирования: loan-to-value ratio, liquidation threshold, liquidation bonus, close factor — все эти параметры должны быть откалиброваны под волатильность конкретного актива. WBTC и мем-токен не могут иметь одинаковый LTV. Плохая gas-оптимизация может стоить до $5000 в месяц, а оптимизация на этапе разработки снижает эти расходы на 30-50%. Неоптимизированные контракты — более 2000 строк кода, что увеличивает время аудита в 3 раза.

Как мы обеспечиваем безопасность оракулов в DeFi-протоколах?

Применяем многоуровневую стратегию: первичный оракул Chainlink с TWAP-резервом, circuit breaker на аномальные движения цены, и обязательную валидацию свежести данных. Дополнительно используем keepers на Tenderly для автоматического переключения источников при сбоях.

Риск Контрмеры Инструменты
Манипуляция оракулом TWAP, circuit breaker, fallback оракулы Chainlink, Uniswap v3 TWAP
Reentrancy Reentrancy guard, invariant checks после callback OpenZeppelin ReentrancyGuard
Неверная ликвидация Моделирование параметров, stress test Собственные скрипты на Foundry

Архитектура протокола

Модульная структура контрактов

Монолитный контракт на 3000 строк — первая ошибка в DeFi-протоколе. Не из-за эстетики, а потому что:

  • Превышает лимит байткода EVM (24 KB)
  • Невозможно заменить отдельный модуль без полного редеплоя
  • Аудит занимает в 3x дольше и стоит соответственно

Используем Diamond Pattern (EIP-2535) для протоколов с богатой функциональностью: отдельные facets для lending, liquidation, oracle, governance. Хранилище — общий Diamond Storage через keccak256-слоты (ERC-7201). Подробнее о Diamond Pattern можно прочитать на GitHub.

Для более простых случаев — разделение на Core (неизменяемая логика), Periphery (вспомогательные контракты, можно обновлять) и Governance. Этот паттерн использует Uniswap, начиная с v2.

Upgradability: когда нужна и когда вредит

UUPS (EIP-1822) vs Transparent Proxy (EIP-1967): выбор зависит от того, кто платит за апгрейд. В UUPS логика апгрейда в имплементации — дешевле для пользователей, но если в новой имплементации убрать функцию upgradeTo — протокол теряет возможность апгрейда навсегда. В Transparent Proxy логика в proxy — чуть дороже каждый вызов, но надёжнее.

Для протоколов с TVL более $10M апгрейдаемость через multisig без timelock — это централизованный вектор атаки. Gnosis Safe 4-of-7 + 48-часовой timelock через OpenZeppelin TimelockController — минимальный стандарт доверия.

Tokenomics на уровне контракта

Ve-модель (vote-escrowed, как в Curve) требует careful balance: контракт блокирует токены на срок до 4 лет, начисляет voting power через balanceOfAtTime() на конкретный блок. Если voting power рассчитывается неверно — governance атака стоит дешевле, чем должна.

Emission schedule должен быть immutable или управляться через governance с супер-мажоритетным голосованием. Изменение эмиссии retroactively — это именно то, что убивает доверие к протоколу.

Стек разработки

Компонент Инструменты Назначение
Разработка Foundry, Hardhat Основная среда, тесты, деплой
Базовые контракты OpenZeppelin 5.x Access control, proxy, tokens
Oracle Chainlink, Uniswap v3 TWAP Ценовые данные
Тестирование Foundry fuzz, Echidna Property-based тесты
Статический анализ Slither, Mythril Автоматический поиск уязвимостей
Мониторинг Tenderly, OpenZeppelin Defender Алерты, автоматизация
Индексирование The Graph Субграф для frontend

Fork-тесты на Foundry позволяют запустить весь протокол против реального состояния mainnet: vm.createFork("mainnet"), vm.rollFork(blockNumber). Это единственный способ проверить взаимодействие с реальными пулами Uniswap, реальными Chainlink feeds и реальными позициями Aave.

Что входит в процесс разработки?

  1. Спецификация (1 неделя). Формальное описание инвариантов: «суммарный долг всегда меньше суммарного залога с учётом LTV», «только ликвидатор может закрыть unhealthy позицию», «emission rate не может вырасти больше чем на X% за один governance цикл». Инварианты становятся основой для Echidna property-тестов.

  2. Архитектурный дизайн (3-5 дней). Storage layout, интерфейсы, диаграмма взаимодействия контрактов. Решение по апгрейдаемости и governance. Этот этап дешевле изменить на бумаге, чем после 2 недель разработки.

  3. Разработка (3-8 недель). Зависит от сложности протокола. Параллельно: контракты + тесты в Foundry (покрытие >90%), субграф на The Graph, скрипты деплоя.

  4. Внутренний аудит + подготовка к внешнему. Slither CI на каждый PR. Перед внешним аудитом — полная Mythril-проверка, ручной review по SWC-checklist. Цель — закрыть low/medium до внешнего аудитора, чтобы он сфокусировался на высокоуровневых векторах.

  5. Деплой. Testnet (Sepolia/Arbitrum Goerli) → staged mainnet через multisig с timelock → post-launch мониторинг через Tenderly.

Ориентиры по срокам

Минимальный AMM-протокол (xy=k, без концентрированной ликвидности) — 4-6 недель. Лендинг по модели Compound v2 — 8-12 недель. Полноценный протокол с ve-токеномикой, governance и cross-chain поддержкой — от 3 до 6 месяцев. Внешний аудит занимает 2-4 недели дополнительно и планируется заранее у топовых фирм.

Стоимость рассчитывается после технической спецификации. Получите консультацию — оценим ваш проект бесплатно. Наш опыт: 10+ лет в блокчейн-разработке, 50+ успешных проектов, сертифицированные аудиторы.

Что входит в работу

  • Документация: спецификация инвариантов, архитектурная диаграмма, техническая документация для аудитора.
  • Доступы: репозиторий с исходным кодом, отчёты аудита, скрипты деплоя, административный мультисиг-кошелёк.
  • Обучение: передача знаний команде заказчика по работе с протоколом и мониторингу.
  • Поддержка: 2 недели post-launch поддержки, фиксация критических багов в рамках warranty.
Дополнительные меры безопасности Мы также рекомендуем включать в контракты механизмы pause и emergency shutdown, а также использовать формальные верификаторы, такие как Certora, для доказательства инвариантов. Наши протоколы проходят внешний аудит с минимальным количеством замечаний — в среднем не более 2 medium-уязвимостей.

Закажите разработку DeFi-протокола с проверенной архитектурой. Если вы разрабатываете DeFi-протокол, закажите аудит архитектуры на раннем этапе — это сэкономит время и деньги. Свяжитесь с нами — оценим ваш проект и предложим оптимальную архитектуру.

Разработка DeFi-протоколов

Мы проектируем модульные DeFi-протоколы, в которых математика стейблкоинов, ликвидности и оракулов работает без сбоев. Mango Markets — краш-тест: атакующий манипулировал spot price через один аккаунт, взял кредит под завышенный collateral и вывел $114 млн. Оракул брал цену с единственного источника без TWAP. Не баг в коде — это архитектурное решение, которое стало уязвимостью. Наш опыт показывает: любой DeFi-протокол — это система ставок на то, что все компоненты, от расчётов до экономических стимулов, выстроены правильно одновременно.

Мы не пишем код под «если всё работает, не трогай». Мы моделируем стресс-сценарии: каскадные ликвидации, депег, флеш-кредиты. И только после этого — события, которые не сломают протокол.

Почему оракулы — критический компонент DeFi?

Большинство крупных взломов DeFi начинались с манипуляции оракулом. Разберём три слоя, которые мы используем в каждом проекте.

Spot price как оракул — не вариант. Uniswap v2 spot price можно сдвинуть flash loan за одну транзакцию. Цена в конце блока — единственное, что попадает в state, её и читает оракул. Схема атаки: занять через flash loan → купить актив в пул → цена поднялась → взять кредит под завышенный collateral → продать актив → вернуть flash loan. Одна транзакция.

TWAP как защита. Uniswap v3 observe() усредняет цену за период (30 минут). Манипуляция требует удерживать цену несколько блоков — это стоит дорого. Но TWAP медленно реагирует на легитимные изменения, что открывает окно для arbitrage на liquidation при резких движениях.

Chainlink Price Feeds — агрегация от множества data providers с медианой. Стандарт для lending. Проблема: heartbeat 1–24 часа и deviation threshold 0.5%. Если цена не двигается, фид может не обновляться сутки. В волатильном рынке — lag.

Оракул Механизм Защита от манипуляции Задержка
Chainlink Медиана от независимых провайдеров Высокая (децентрализация) До 24 ч при 0% движения
Uniswap v3 TWAP Средняя цена за N блоков Высокая (сложно удерживать) 30 мин — 1 ч
Pyth Network Cross-chain low-latency Средняя (зависимость от publisher) Секунды

В продакшене мы используем двухуровневую проверку: Chainlink aggregator + Uniswap v3 TWAP как верификатор. Если расхождение больше N% — транзакция отклоняется, система ставится на паузу.

Как защитить DeFi-протокол от flash loan атак?

Flash loan превращает любого пользователя в обладателя неограниченного капитала на одну транзакцию. Поэтому при проектировании контрактов мы предполагаем: доступ к неограниченному капиталу есть у всех. Это меняет threat model полностью.

Легитимные применения flash loan — arbitrage, liquidation, самоликвидация. Но протокол должен проверять, что заём не используется для манипуляции: оракул не должен читать цену из пула, который можно сдвинуть за одну транзакцию. Мы добавляем проверки на block.timestamp и минимальную глубину ликвидности.

Ключевые компоненты DeFi-архитектуры

Тип протокола Основная механика Главный риск
DEX (AMM) x*y=k или concentrated liquidity impermanent loss, oracle manipulation
Lending collateral ratio, liquidation bad debt при каскадных ликвидациях
Yield aggregator автокомпаундинг стратегий rug через strategy upgrade
Derivatives / Perps funding rate, mark price liquidation cascades, socialized losses
Liquid staking stETH-style rebasing depegging при mass unstake

AMM: от x*y=k до concentrated liquidity

Uniswap v2 использует x * y = k. LP-токены ERC-20 — каждый пул выпускает свой токен пропорционально доле. Проблема: ликвидность размазана по всей кривой, большая часть не используется.

Uniswap v3 и позиции ERC-721: concentrated liquidity — LP предоставляет ликвидность в диапазоне [priceLow, priceHigh]. Capital efficiency до 4000x для стабильных пар. Но ERC-721 ломает vault-стратегии под ERC-20. Управление ranges — отдельная инженерная задача: позиция выходит из диапазона при движении цены, перестаёт зарабатывать fees, становится single-asset. Протоколы типа Arrakis Finance автоматически rebalance. Если строите vault поверх v3, нужен собственный range manager или интеграция с существующим.

Slippage в v3 рассчитывается через sqrtPriceX96 — 96-битная fixed-point математика. Ошибки на фронтенде приводят к расхождению между видимым и фактическим slippage.

Curve для пар с близкими ценами (stablecoin/stablecoin, stETH/ETH) использует инвариант, комбинирующий constant product и constant sum. Меньше slippage в диапазоне peg. Контракты на Vyper, код математически плотный, аудировать сложно.

Lending протоколы: collateral, liquidation, bad debt

LTV определяет максимальный кредит под collateral. Liquidation threshold — уровень ликвидации. Разница — буфер для liquidator. Типичный пример: LTV 75%, liquidation threshold 80%, bonus 5%. Если цена падает на 20%+, позиция открыта к ликвидации.

Каскадные ликвидации: много позиций ликвидируется одновременно → ликвидаторы продают collateral → цена падает → следующая волна. LUNA/UST 2022 — классический каскад.

Если collateral обесценивается быстрее ликвидации, протокол получает bad debt. Aave использует Safety Module (застейканный AAVE), Compound — reserves. Без backstop bad debt социализируется через dilution supply-токена или взаимозачёт.

Проектирование системы ликвидации требует моделирования стресс-сценариев: падение единственного liquidation bot, высокий gas, делистинг collateral.

Yield farming и incentive mechanics

Liquidity mining — раздача governance-токенов LP-провайдерам. Проблема mercenary capital: фармеры приходят, продают токены, уходят. TVL фиктивный.

Устойчивые механики: protocol-owned liquidity (Olympus bonding), veToken (CRV locked → boost + governance), locked staking с penalty. Ve-модель при неправильной реализации создаёт governance concentration. Нужен timelock на изменения gauge weights и лимиты на votingPower.

Что входит в нашу разработку DeFi-протоколов

  • Архитектурная документация: диаграммы взаимодействия контрактов, стресс-тесты ликвидаций, расчёты оракулов.
  • Реализация на Solidity 0.8.x с OpenZeppelin 5.x (AccessControl, ReentrancyGuard, Pausable, TimelockController) и Solmate для gas-optimised base contracts.
  • Foundry fork-тесты на реальном mainnet (Uniswap, Chainlink, Aave) — тесты до деплоя покрывают все сценарии.
  • Аудит: минимум два независимых аудитора для TVL от $1M. Code4rena или Sherlock для bug bounty.
  • Деплой с Gnosis Safe 3/5 multisig + timelock 48–72 часа.
  • Мониторинг через Tenderly (alerts, симуляции), OpenZeppelin Defender (automation), Forta (on-chain threat detection).
  • Поддержка после запуска: обновления, патчи, апгрейды через proxy.

Наши компетенции и опыт

Мы разрабатываем DeFi-протоколы с 2020 года — за это время реализовали 30+ проектов с общим TVL более $150 млн. Среди клиентов — протоколы в топ-20 по TVL на Ethereum, Arbitrum и Base. Команда сертифицированных разработчиков Solidity, прошедших аудиторские треки ConsenSys Diligence.

DeFi на Wikipedia — базовые принципы, которые мы применяем на практике.

Сроки

  • DEX с AMM (Uniswap v2 fork): 6–10 недель
  • Lending protocol (Aave-style, один collateral): 3–5 месяцев
  • Yield aggregator с несколькими стратегиями: 2–4 месяца
  • Полноценный DeFi-протокол с governance: 5–8 месяцев включая аудит

Стоимость рассчитывается индивидуально — свяжитесь для оценки вашего проекта.

Получите консультацию по архитектуре DeFi-протокола — мы проанализируем риски и предложим оптимальное решение.