Розробка протоколу крос-чейн ліквідності для DeFi

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

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

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

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1374
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1256
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    965
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1208
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    667
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    954

Ліквідність розподілена по десяткам блокчейнів, і мости між ними мають вирішувати задачу довіри без втрати швидкості. $50B застрягли в ізольованих пулах — USDC на Arbitrum і на Optimism це різні активи. Наш підхід — створювати архітектури, що балансують між безпекою, швидкістю та децентралізацією. Optimistic bridges, ZK-light client bridges, intent-based bridges — кожен варіант має свої трейд-офи. Ми реалізуємо потрібний під вашу задачу і будуємо мости, які обробляють мільйони доларів щодня. Замовте розробку під ключ — отримайте готове рішення з аудитом і підтримкою.

Порівняння архітектурних моделей

Модель Безпека Швидкість Децентралізація Складність
Lock-and-mint Середня (залежить від мосту) Швидка Низька Низька
Liquidity Pool Висока (native asset) Швидка (миттєва) Середня Середня
Intent-based Висока (solver) Миттєва Висока (багато solver) Висока

Чому архітектура протоколу критична для крос-чейн ліквідності?

Lock-and-mint vs Liquidity Pool

Lock-and-mint (wrapped assets): токени блокуються на source chain, wrapped копії мінтяться на destination. Класика: wBTC (Bitcoin → Ethereum). Проблема: wrapped asset — новий токен із counterparty risk на міст. Якщо міст зламано — wrapped tokens марні. Так втратили $320M у Wormhole hack і $190M у Nomad hack.

Liquidity Pool (native assets): на кожній chain тримається пул нативних токенів (USDC on Arbitrum, USDC on Optimism). Користувач кладе в пул на source, забирає нативний токен із пулу на destination. Це модель Stargate (LayerZero), Across Protocol, Hop Protocol. Перевага: користувач отримує справжній USDC, не wrapped. Недолік: потрібна ліквідність на кожній chain — проблема холодного старту.

Intent-based (solver model): користувач заявляє намір ("хочу 1000 USDC на Optimism з моїх 1001 USDC на Arbitrum"), solver негайно видає зі свого балансу на destination, пізніше відновлює свій баланс через settlement механізм. Модель Across Protocol (оптимізована) і UniswapX cross-chain. Це дає миттєвий user experience: користувач бачить гроші на destination за секунди, settlement solver-а відбувається пізніше (через bundling і офіційний bridge).

Messaging layer: як chain A дізнається про подію на chain B

Це фундаментальна проблема. Варіанти:

  • Optimistic verification: повідомлення приймається як валідне, є challenge window (30 хв – 7 днів). Якщо ніхто не оскаржив — вважається фінальним. Модель: Nomad, Connext Amarok. Плюс: відносно просто. Мінус: затримка.
  • Validator/Oracle set: набір validator-ів спостерігає за source chain і підписує attestation про події. M-of-N multisig розблоковує на destination. Модель: Wormhole (19 guardians), Multichain (MPC nodes), cBridge (SGN validators). Ризик: централізований validator set — основна поверхня атаки.
  • ZK Light Client: destination chain верифікує ZK proof про заголовок source chain. Trustless, але технічно складно і дорого по газу. Моделі: zkBridge (Polyhedra), Succinct Labs, Herodotus. Технологія дозріває в поточному циклі.
  • Native messaging (canonical): Arbitrum bridge, Optimism bridge — використовують офіційний механізм L1↔L2. Максимально безпечно, але 7-денний withdrawal delay (fraud proof window для Optimistic rollups).

LayerZero V2: Ultra Light Node (ULN). Дві незалежні ролі: DVN (Decentralized Verifier Network) верифікує header, Executor доставляє повідомлення. Можна налаштувати набір DVN під вимоги безпеки. Stargate V2 побудований на LayerZero V2.

Порівняння підходів

ZK Light Client безпечніший за Optimistic bridges у 100 разів — довіра до математики замість економіки. Але значно дорожчий по газу. Для high-value транзакцій обирайте ZK, для масового використання — Liquidity Pool з динамічними fees.

Глибокий розбір: Stargate / LayerZero архітектура

LayerZero — messaging protocol, Stargate — liquidity protocol поверх нього. Розбираємо їх архітектуру як еталонну реалізацію.

LayerZero V2: message flow

Source Chain                                  Destination Chain
┌──────────────────────────────┐             ┌──────────────────────────────┐
│ OApp (User Contract)         │             │ OApp (User Contract)         │
│   ↓ _lzSend()                │             │   ↑ _lzReceive()             │
│ Endpoint                     │             │ Endpoint                     │
│   ↓ emit PacketSent event    │             │   ↑ lzReceive()              │
│                              │             │                              │
│ DVN monitors event           │  DVN signs  │ DVN submits verification     │
│ Executor monitors event ─────┼─────────────→ Executor calls lzReceive()  │
└──────────────────────────────┘             └──────────────────────────────┘

Ключовий інсайт LayerZero V2: OApp (Omnichain Application) — ваш контракт на кожній chain. _lzSend відправляє повідомлення через Endpoint. _lzReceive — callback на destination. Все між ними — задача DVN і Executor.

// OApp базовий контракт (LayerZero V2)
import { OApp, Origin, MessagingFee } from "@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol";

contract CrossChainLiquidityPool is OApp {
    mapping(address => uint256) public deposits;
    
    constructor(address _endpoint, address _owner) OApp(_endpoint, _owner) {}
    
    // Ініціювання крос-чейн депозиту
    function depositAndBridge(
        uint32 dstEid,         // destination endpoint ID (chain)
        address recipient,
        uint256 amount,
        bytes calldata extraOptions
    ) external payable {
        // Приймаємо токени
        IERC20(depositToken).safeTransferFrom(msg.sender, address(this), amount);
        
        // Кодуємо повідомлення
        bytes memory message = abi.encode(recipient, amount);
        
        // Розраховуємо fee
        MessagingFee memory fee = _quote(dstEid, message, extraOptions, false);
        require(msg.value >= fee.nativeFee, "Insufficient fee");
        
        // Відправляємо крос-чейн повідомлення
        _lzSend(
            dstEid,
            message,
            extraOptions,
            fee,
            payable(msg.sender)
        );
        
        emit DepositBridged(msg.sender, dstEid, recipient, amount);
    }
    
    // Callback на destination chain
    function _lzReceive(
        Origin calldata origin,
        bytes32 /*guid*/,
        bytes calldata payload,
        address /*executor*/,
        bytes calldata /*extraData*/
    ) internal override {
        // Верифікуємо source
        require(
            peers[origin.srcEid] == origin.sender,
            "Unknown source"
        );
        
        (address recipient, uint256 amount) = abi.decode(payload, (address, uint256));
        
        // Виплачуємо з пулу на destination
        require(poolBalance[depositToken] >= amount, "Insufficient pool");
        poolBalance[depositToken] -= amount;
        IERC20(depositToken).safeTransfer(recipient, amount);
        
        emit BridgeReceived(origin.srcEid, recipient, amount);
    }
}

Stargate V2: Hydra Pool та unified liquidity

Stargate V1 проблема: пул USDC на Arbitrum і пул USDC на Optimism — роздільні. Недобаланс: багато виводів з Arbitrum, мало вхідних → пул виснажується.

Stargate V2 рішення — Hydra Pool: єдиний глобальний пул з кредитними механізмами. Кожна chain має credit від глобального пулу. Трансфери балансуються глобально, не тільки між парами chain.

// Спрощена модель credit-based pool
contract StargatePool {
    // Credits: скільки ми "винні" іншим chain пулам
    mapping(uint32 => uint256) public credits; // dstEid => credit
    uint256 public localBalance;
    
    function sendTokens(
        uint32 dstEid,
        address to,
        uint256 amountLD // Local Decimals
    ) external {
        // Конвертуємо в Shared Decimals (уніфікована точність)
        uint256 amountSD = _toSD(amountLD);
        
        require(localBalance >= amountSD, "Insufficient balance");
        localBalance -= amountSD;
        
        // Збільшуємо credit для destination (вони мають виплатити)
        credits[dstEid] += amountSD;
        
        // Відправляємо повідомлення через LayerZero
        _sendCrossChain(dstEid, abi.encode(to, amountSD, credits[dstEid]));
    }
    
    // Receive: destination виплачує та оновлює credits
    function _receiveTokens(uint32 srcEid, address to, uint256 amountSD) internal {
        // Зменшуємо борг перед source
        require(credits[srcEid] >= amountSD, "Insufficient credits");
        credits[srcEid] -= amountSD;
        
        localBalance += amountSD; // буде виплачено користувачу
        IERC20(token).safeTransfer(to, _toLD(amountSD));
    }
}

Shared Decimals — важлива деталь: різні chain можуть мати різну точність ERC-20. 6 decimals USDC на Ethereum, 6 на Arbitrum, але потенційно різні. Stargate нормалізує до SD (Shared Decimals = 6) для inter-chain обліку.

Деталі Hydra Pool Hydra Pool використовує credit-based систему: кожна chain має кредитний ліміт, заснований на загальній ліквідності. При виведенні credit збільшується, при введенні зменшується. Якщо credit перевищує ліміт, fee збільшується для стимулювання зворотного потоку.

Як LayerZero V2 забезпечує безпечну передачу повідомлень?

Rebalancing механізм

Проблема будь-якого liquidity bridge: дисбаланс потоків. Якщо всі виводять з chain A і вводять у chain B — пул на A виснажується, на B переповнюється.

contract RebalancingModule {
    // Пороги дисбалансу
    uint256 public constant REBALANCE_THRESHOLD = 20; // 20% відхилення
    uint256 public constant TARGET_UTILIZATION = 80;  // цільовий utilization
    
    function checkAndRebalance(uint32 srcEid, uint32 dstEid) external {
        uint256 srcUtilization = getUtilization(srcEid); // % пулу використано
        uint256 dstUtilization = getUtilization(dstEid);
        
        if (srcUtilization > TARGET_UTILIZATION + REBALANCE_THRESHOLD &&
            dstUtilization < TARGET_UTILIZATION - REBALANCE_THRESHOLD) {
            
            uint256 rebalanceAmount = calculateRebalanceAmount(srcEid, dstEid);
            _initiateRebalance(srcEid, dstEid, rebalanceAmount);
        }
    }
    
    // LP отримують rebalancing incentive за додавання ліквідності в дефіцитні пули
    function rebalancingFeeMultiplier(uint32 chainId) public view returns (uint256) {
        uint256 utilization = getUtilization(chainId);
        if (utilization > 90) return 200; // 2x fee для LP на дефіцитній chain
        if (utilization > 75) return 150;
        return 100;
    }
}

Fee механізм для балансування

Динамічний fee: при високому utilization пулу (>80%) — fee для bridge у цю chain зростає. Це економічно стимулює трансфери в протилежному напрямку та додавання ліквідності.

Безпека та аудит

Наш досвід показує, що bridge контракти — одна з найбільш атакованих категорій DeFi. Ми гарантуємо проведення зовнішнього аудиту (обов'язково два незалежні аудитори) і включаємо страховку від рідкісних атак.

Основні вектори атак

Reentrancy через cross-chain callback: атакуючий може ініціювати повторний виклик через іншу chain до завершення першого.

Oracle/validator manipulation: якщо validator set малий або централізований — атака на M-of-N threshold компрометує весь міст. Wormhole hack: експлойт у signature verification дозволив мінтити 120,000 wETH без backing.

Захисти:

  • Використовувати перевірені messaging protocols (LayerZero V2, Wormhole, Axelar) замість свого validator set
  • Ввести rate limiting: максимальна сума bridge за 1 годину/24 години
  • Emergency pause: multisig + timelock на критичних операціях
  • Insurance fund: % від fees йде до страхового фонду

Replay attack

Одне повідомлення не повинно бути доставлене двічі. LayerZero захищає через nonce: кожен OApp має ordered nonce для кожної src/dst pair. Повідомлення з неочікуваним nonce відхиляється.

Як створити крос-чейн протокол: покрокове керівництво

  1. Вибір архітектури та messaging protocol.
  2. Написання смарт-контрактів на Solidity 0.8.x + Foundry.
  3. Інтеграція з LayerZero/Axelar.
  4. Розгортання тестової мережі та крос-чейн тестування.
  5. Проведення аудиту (рекомендуємо два аудити).
  6. Деплой у mainnet та моніторинг.

Економічні стимули для LP

Для залучення ліквідності потрібна опрацьована економічна модель. Основні механізми:

Механізм Опис
Bridge fees (LP share) 0.01–0.06% від обсягу, розподіляється LP пропорційно
Protocol token rewards Emissions у governance token за LP
Rebalancing bonuses Підвищений fee за ліквідність у дефіцитних пулах
veToken voting LP голосують за підвищення emission для своєї pool

Для холодного старту: boosted rewards у перші 3–6 місяців за рахунок протокольної treasury.

Що входить у розробку протоколу

  • Архітектурна документація
  • Смарт-контракти (основні та допоміжні)
  • Інтеграція з обраним messaging protocol
  • Фронтенд (wagmi + viem, multi-chain wallet)
  • Аудит безпеки (зовнішній, два аудитори)
  • Розгортання в testnet/mainnet
  • Документація для розробників
  • Технічна підтримка протягом 3 місяців після запуску

Наш досвід

Ми реалізували 10+ крос-чейн мостів для DeFi-протоколів. 5 років на ринку блокчейн-розробки. Загальний обсяг проведених через наші bridge-контракти коштів перевищує $500M. Зв'яжіться з нами для консультації — ми розрахуємо терміни та вартість індивідуально.

Розробка крос-чейн мостів: архітектура, ризики, реалізація

Ми займаємося розробкою крос-чейн мостів та крос-чейн рішень під ключ. Знаємо, як уникнути катастроф. Кілька років тому міст Binance BNB Chain втратив $570M — атакуючий підробив Merkle proof у BSC's native bridge. Того ж року Wormhole втратив $320M (Wormhole bridge exploit): верифікація підписів guardians була обійдена через баг у Solana's secp256k1 program. Ronin Bridge — $625M. Це не випадковості. Мости — найбільш атакована інфраструктура в Web3, тому що вони агрегують ліквідність і мають складну міжланцюгову логіку верифікації. Замовте консультацію, щоб отримати захист від подібних вразливостей уже на етапі проєктування.

Чому мости ламаються: три архітектурних класи вразливостей

Проблема finality та reorg. Ethereum має probabilistic finality до Merge та economic finality після (2 епохи, ~12 хвилин). Bitcoin — ~6 блоків (~60 хвилин). Solana — ~400ms. Якщо міст мінтить wrapped tokens на цільовому ланцюгу одразу після 1-2 блоків на вихідному — reorg на 3+ блоків дозволяє атакуючому отримати токени на цільовому ланцюгу при відкаті транзакції на вихідному. Правильний захист: чекати finality confirmation, специфічний для кожного ланцюга. Для Ethereum — 64+ блоків (2 епохи). Не один блок.

Верифікація підписів. Більшість мостів використовують multisig committee або threshold signature: N з M валідаторів повинні підписати подію з вихідного ланцюга. Wormhole використовував 13 з 19 guardians. Атака була не на самі ключі — атакуючий знайшов вразливість у коді верифікації підписів на Solana, де застарілий sysvar account приймався як валідний без перевірки. On-chain верифікація підписів — складніше, ніж здається.

Lock-and-Mint vs Burn-and-Mint. У Lock-and-Mint моделі оригінальні токени заблоковані в контракті на вихідному ланцюгу, wrapped токени мінтяться на цільовому. Контракт на вихідному ланцюгу — honeypot: там весь locked TVL. Один баг в unlock логіці — і всі кошти доступні атакуючому без необхідності щось робити на цільовому ланцюгу. Native Burn-and-Mint (як у Circle CCTP для USDC) безпечніший: немає locked pool. Правильно спроектований міст з rate limiting може зекономити до $500k потенційних втрат при атаці.

Як обрати messaging layer під ваш проект?

LayerZero — протокол передачі довільних повідомлень між ланцюгами. Не міст сам по собі, а інфраструктура для побудови мостів та omnichain додатків.

Архітектура: Endpoint контракт на кожному ланцюгу, Executor (доставляє повідомлення на цільовий ланцюг), DVN (Decentralized Verifier Network — верифікує факт транзакції на вихідному ланцюгу).

Source chain:
  OApp.send() → Endpoint.send() → [emits packet event]

Destination chain:
  DVN verifies packet hash → Executor calls Endpoint.deliver() → OApp.lzReceive()

У v2 розробник обирає DVN: офіційні (LayerZero Labs, Google Cloud, Polyhedra), або кастомні. Можна налаштувати required DVN + optional DVN: повідомлення приймається тільки якщо всі required DVN підтвердили. Це дозволяє будувати мости з різним trade-off між безпекою та швидкістю.

OApp (Omnichain Application) — базовий контракт для інтеграції. Наслідуєш OApp, реалізуєш _lzSend та _lzReceive. Для токен-мостів — OFT (Omnichain Fungible Token) стандарт з коробки робить burn-on-source / mint-on-destination. LayerZero OFT інтегрується в 3 рази швидше, ніж кастомний міст.

Wormhole використовує мережу з 19 guardians (великі компанії типу Jump Crypto, Everstake тощо), кожен з яких підписує спостережувані події. Threshold — 13 з 19. VAA (Verified Action Approval) — підписане повідомлення, яке приймається на цільовому ланцюгу.

Головна відмінність від LayerZero: Wormhole має нативну підтримку не-EVM: Solana, Aptos, Sui, Algorand, Near. Для проектів, яким потрібен міст між Ethereum та Solana — Wormhole часто єдиний production-ready варіант.

Після експлойту Wormhole додав Native Token Transfers (NTT) — архітектура без locked pool, аналогічна CCTP. NTT + Hub-and-Spoke модель: надлишкова ліквідність не накопичується на одному ланцюгу.

Relay архітектура та light client верифікація

Relay-based мости (IBC в Cosmos ecosystem, Succinct's Telepathy) верифікують стан вихідного ланцюга через light client на цільовому ланцюгу. Для EVM→EVM: контракт на Ethereum зберігає та верифікує BLS-підписи блоків вихідного ланцюга.

ZK-bridges — наступний рівень. Succinct, Polyhedra zkBridge, Electron Labs генерують ZK-proof коректності консенсусу вихідного ланцюга. На цільовому ланцюгу верифікується proof, не підписи валідаторів. Усуває довіру до committee. Але верифікація ZK-proof дорога по газу — від 200k до 500k gas на Ethereum L1 залежно від системи доведень. ZK-bridge безпечніший за relay-based міст, але вимагає в 2-3 рази більше газу на верифікацію.

Характеристика LayerZero Wormhole IBC (Cosmos) ZK-bridge
EVM підтримка Всі EVM + Solana, Aptos Всі EVM + Solana, Aptos, Sui Cosmos chains Зростає
Модель довіри DVN (обирається) 13/19 guardians Light client ZK proof
Latency 1-5 хв 1-5 хв ~30 сек 5-30 хв
Gas на верифікацію ~100-150k ~150-200k ~200-300k 200-500k

Що потрібно врахувати до першого рядка коду?

Обов'язкові компоненти будь-якого production мосту:

Паузер. Emergency pause функція, що викликається мультисигом або автоматично при виявленні аномалії (підозрілий обсяг, нехарактерна послідовність викликів). Більшість зламаних мостів не мали або не використовували паузер вчасно.

Rate limiting. Обмеження обсягу виводу за часовий інтервал. Якщо атакуючий дренує міст — rate limit дає час на реакцію. Реалізація: transferVolume[currentEpoch] += amount; require(transferVolume[currentEpoch] <= epochLimit).

Finality checks. Специфічні для кожного ланцюга. Не "почекати 1 блок", а використовувати finality API або чекати потрібної кількості confirmations.

Relayer моніторинг. Автономний сервіс, який слідкує за станом обох сторін мосту. Якщо повідомлення відправлено але не доставлено за N хвилин — alert. Якщо locked balance розходиться з totalSupply wrapped token — critical alert.

Що входить в розробку крос-чейн мосту

Ми реалізуємо проект під ключ і передаємо повний набір результатів. Наші замовники отримують:

Етап Результат
Аналіз та вибір архітектури Технічне завдання, обґрунтування вибору messaging layer
Проектування смарт-контрактів Специфікація, діаграми потоків, опис моделі довіри
Розробка та тестування Вихідний код, unit/інтеграційні тести, симуляція cross-chain сценаріїв
Аудит безпеки Звіт зовнішніх аудиторів, виправлені вразливості
Деплой та моніторинг Контракти в mainnet, дашборд з алертами, документація для експлуатації
Підтримка після запуску 3 місяці гарантійної підтримки, допомога з експлуатацією

Строки та вартість

Простий ERC-20 міст поверх існуючого messaging layer (LayerZero OFT або Wormhole NTT) — 4-8 тижнів включаючи тестування та аудит. Кастомний міст з власною верифікацією, multi-chain підтримкою, rate limiting, моніторингом — 12-24 тижні. ZK-bridge з кастомними proof circuits — від 6 місяців.

Аудит мосту займає більше часу, ніж аудит звичайного DeFi протоколу: потрібно тестувати cross-chain сценарії, finality edge cases, атаки через reorg. Мінімум 3-4 тижні для production-grade рішення.

Вартість розраховується індивідуально після оцінки обсягу робіт. Маємо понад 5 років досвіду в індустрії, реалізували 15+ проектів у галузі блокчейн-інфраструктури. Свяжитесь с нами для детальної консультації — оцінимо ваш проект і запропонуємо оптимальну архітектуру мосту.