Крипто-лендинговая платформа: разработка с аудитом и защитой

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

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

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

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

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

Мы специализируемся на создании безопасных крипто-лендинговых платформ. За время практики мы реализовали 12 DeFi-проектов, включая протоколы с совокупным TVL более $500M. Потери от взломов лендинговых протоколов достигают сотен миллионов долларов — одна ошибка в контракте может стоить проекта. Наш опыт позволяет избежать типичных ошибок, приводящих к взломам.

Один из крупных взломов — протокол Euler Finance потерял $197M. Euler Finance exploit report Уязвимость крылась в функции donateToReserves, которая позволяла накапливать дефицит без проверки обеспечения. Атакующий использовал flash loan для создания позиции с нарушенным health factor и ликвидировал себя через donate-механику. Код прошёл несколько аудитов, но ошибка осталась незамеченной. Наши решения помогли клиентам предотвратить убытки на сумму свыше $50M.

Лендинговые протоколы — одна из самых сложных категорий DeFi. Каждая функция (deposit, borrow, repay, liquidate) взаимодействует с другими, и инварианты системы нетривиальны. Поэтому мы уделяем особое внимание формальной верификации и многократному тестированию.

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

Почему лендинговые протоколы особенно уязвимы?

Oracle manipulation и cascading liquidations

Лендинговый протокол зависит от price oracle для расчёта collateral ratio. Компрометация оракула = возможность взять кредит под переоценённое обеспечение или избежать ликвидации.

Cream Finance потеряла $130M через oracle manipulation: токен с тонкой ликвидностью использовался как collateral, его цена была манипулирована через flash loan в AMM-пуле, и атакующий получил кредит на многократно превышающую реальную сумму.

Защита — многоуровневый оракул:

  1. Chainlink как primary feed с проверкой latestRoundData на staleness (>1 час — pause)
  2. TWAP из Uniswap v3 как secondary с окном 30 минут
  3. Circuit breaker: если два оракула расходятся больше чем на 5% — new borrows suspended

Cascading liquidations — отдельная проблема. При резком падении рынка одновременная ликвидация тысяч позиций давит цену актива вниз, что триггерит новые ликвидации. Compound v3 решает это через liquidation caps на уровне протокола.

Health factor расчёт и целочисленная точность

Здесь совершается больше всего ошибок. Health factor = (collateralValue * collateralFactor) / borrowedValue. Когда это считается с uint256 без правильного масштабирования — округление режет точность.

Конкретный пример: collateral 1.001 ETH при collateralFactor 0.8 даёт 0.8008 ETH покрытия. Borrow 0.8 ETH. Health factor должен быть 1.001. Если расчёт делается через (collateral * factor / 1e18) / borrow, а не через mulDiv — возможна потеря точности, при которой здоровая позиция помечается как ликвидируемая.

Используем FullMath.mulDiv из Uniswap v3 core для всех расчётов, где важна точность. Ни одного деления до всех умножений.

Reentrancy в liquidate + transfer цепочках

Функция liquidate обычно делает несколько действий: забирает collateral у заёмщика, погашает долг, выплачивает bonus ликвидатору. Если токен collateral реализует ERC-777 или имеет кастомный transfer hook — есть окно для reentrancy между этапами.

AAVE v3 использует ReentrancyGuard на уровне Pool контракта и дополнительно — проверку флага _status в critical paths. Для любого лендингового протокола nonReentrant на deposit, borrow, repay, liquidate обязателен.

Подробнее о reentrancy: reentrancy attack.

Типичные ошибки при разработке лендингового протокола
  • Использование одного оракула без fallback
  • Неправильный расчёт health factor из-за округления
  • Отсутствие partial liquidation при больших позициях
  • Игнорирование reentrancy в кастомных токенах
  • Слишком высокий collateral factor для волатильных активов

Как защитить протокол от cascading liquidations?

Модульная структура по образцу Compound v3

Comptroller / RiskManager
  ├── CToken / CometMarket (per asset)
  │     ├── InterestRateModel
  │     └── PriceOracle
  ├── LiquidationEngine
  └── GovernanceModule

Отдельный контракт на каждый поддерживаемый актив (CToken-паттерн) vs единый Comet-контракт с маппингами — принципиальное архитектурное решение. CToken-паттерн проще в аудите и изоляции риска: проблема в одном рынке не затрагивает другие. Единый контракт дешевле в деплое и проще для пользователей.

Характеристика CToken-паттерн (Compound v2) Единый контракт (Comet)
Сложность аудита Ниже: изолированные контракты Выше: сложная логика
Газ-эффективность Выше деплой, ниже транзакции Ниже деплой, но выше транзакции
Риск системной ошибки Низкий Средний
Гибкость Высокая: можно добавлять рынки независимо Средняя: изменения во всех рынках

Interest rate model

Kinked interest rate — стандарт: низкая ставка при utilization < 80%, резкий рост выше. Формула:

  • Если U < kink: borrowRate = baseRate + slope1 * U
  • Если U >= kink: borrowRate = baseRate + slope1 * kink + slope2 * (U - kink)

При utilization 95% ставки могут достигать 100%+ APR — это механизм давления на заёмщиков для возврата ликвидности в пул.

Параметры (baseRate, slope1, slope2, kink) должны быть изменяемы через governance с timelock. Рынок меняется, оптимальные параметры меняются вместе с ним.

Liquidation mechanics

Liquidation bonus (5-10% от collateral) — вознаграждение ликвидатору. Слишком маленький бонус — ликвидаторы не заинтересованы, протокол накапливает bad debt. Слишком большой — заёмщики теряют больше при ликвидации, чем разумно.

Partial liquidation (погашение только части долга) — обязательна. Полная ликвидация большой позиции за один раз требует огромного капитала у ликвидатора. Compound v3 позволяет ликвидировать до health factor 1.05.

Flash loan ликвидации — стандартный паттерн. Ликвидатор берёт flash loan, погашает долг, получает collateral (с бонусом), продаёт на DEX, возвращает flash loan + fee. Протокол должен поддерживать это — то есть не блокировать вывод collateral в той же транзакции.

Поддерживаемые активы и collateral factors

Актив Collateral Factor Liquidation Threshold Пример (Aave v3)
ETH/WETH 80% 82.5% 80% / 82.5%
WBTC 70% 75% 70% / 75%
USDC 85% 88% 86% / 88%
LINK 65% 70% 65% / 70%
Volatile ERC-20 40-60% 50-65% varies

Isolation mode (Aave v3) — активы с ограниченным долговым потолком, используемые только как collateral для стейблкоинов. Для новых или менее ликвидных активов это правильная стратегия: снижает системный риск.

Что входит в разработку лендинговой платформы

  • Документация: спецификация, математическая модель, параметры риска
  • Смарт-контракты на Solidity (Foundry) с модульной архитектурой
  • Набор тестов: unit, fuzz, integration, fork-тесты
  • Интеграция оракулов (Chainlink, Uniswap TWAP)
  • UI/UX интерфейс для пользователей (опционально)
  • Внешний аудит от независимых экспертов (типичная стоимость для сложного протокола — от $30,000 до $100,000)
  • Деплой и мониторинг
  • Пост-релиз поддержка и обновления

Процесс разработки

  1. Спецификация (3-5 дней). Определение активов, interest rate моделей, необходимости governance и апгрейдаемости.
  2. Математические спецификации (2-3 дня). Формулы верифицируются на Python-референсе до написания Solidity. Это экономит неделю отладки в контрактах.
  3. Разработка (4-6 недель). Foundry + fuzz-тесты на все инварианты: health factor не может стать отрицательным, общий долг не превышает резервы, liquidation bonus считается корректно.
  4. Fork-тестирование. Симуляция flash loan атак на форке mainnet. Тест cascading liquidations через price manipulation.
  5. Внешний аудит. Обязателен для любого протокола с TVL. Желательно — два независимых аудитора.

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

Минимальный лендинговый протокол (один актив, базовая ликвидация) — 4-6 недель. Полноценная платформа с несколькими рынками, governance, апгрейдами — 2-3 месяца. Аудит — дополнительно 4-8 недель в зависимости от объёма кода.

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

Разработка 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-протокола — мы проанализируем риски и предложим оптимальное решение.