Розробка крос-чейн месенджингу (LayerZero, Wormhole, Axelar)

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

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

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

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

  • 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

Крос-чейн взаємодія — вузьке місце будь-якої multi-chain архітектури. Ми щодня стикаємося з кейсами, коли ізоляція блокчейнів гальмує продукт: токени заблоковані в одній мережі, користувачі не можуть використовувати DeFi на іншій. Історія знає дорогі помилки — зломи мостів Wormhole, Ronin, Nomad на суми, що вимірюються мільярдами доларів. Розкажемо, як правильно будувати крос-чейн месенджинг на трьох топових протоколах: LayerZero, Wormhole та Axelar. Крос-чейн месенджинг — це не просто пересилання даних, це архітектура довіри між ізольованими середовищами.

Чому крос-чейн месенджинг — це складно?

Проблема не у відправці даних — технічно це тривіально. Складність у довірі: як переконатися, що повідомлення на destination chain валідне, а не підроблене? Кожен протокол вирішує це по-своєму. LayerZero використовує configurable DVN, Wormhole — Guardian мережу з 19 нод, Axelar — валідатори Cosmos. Вибір визначає не тільки швидкість (від 15 секунд до 5 хвилин), але й безпеку.

LayerZero: Omnichain messaging

LayerZero v2 — найпопулярніший протокол для EVM-to-EVM та EVM-to-non-EVM, що підтримує понад 50 мереж. Архітектура розділяє верифікацію та виконання: DVN (Decentralized Verifier Networks) підтверджують повідомлення, Executors виконують його на destination chain. Це дозволяє налаштовувати security threshold: наприклад, потрібно 2 з 3 (LayerZero Labs DVN + Google Cloud DVN + Polyhedra DVN).

Як влаштований протокол

Повідомлення в LayerZero проходить шлях:

Source Chain: OApp.send() → EndpointV2.send() → emit PacketSent event
                                                          ↓
                                               DVNs моніторять подію
                                               DVNs верифікують на destination
                                                          ↓
Destination Chain: EndpointV2 отримує верифікації → Executor викликає lzReceive()

Написання OApp (Omnichain Application)

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import { OApp, Origin, MessagingFee } from "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/OApp.sol";
import { OptionsBuilder } from "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/libs/OptionsBuilder.sol";

contract CrossChainMessenger is OApp {
    using OptionsBuilder for bytes;

    event MessageReceived(uint32 srcEid, bytes32 sender, string message);

    constructor(address _endpoint, address _owner)
        OApp(_endpoint, _owner) {}

    function sendMessage(
        uint32 dstEid,
        string calldata message,
        bytes calldata options
    ) external payable {
        bytes memory payload = abi.encode(message);
        bytes memory lzOptions = OptionsBuilder.newOptions()
            .addExecutorLzReceiveOption(200_000, 0);
        MessagingFee memory fee = _quote(dstEid, payload, lzOptions, false);
        require(msg.value >= fee.nativeFee, "Insufficient fee");
        _lzSend(dstEid, payload, lzOptions, MessagingFee(msg.value, 0), payable(msg.sender));
    }

    function _lzReceive(
        Origin calldata origin,
        bytes32 guid,
        bytes calldata payload,
        address executor,
        bytes calldata extraData
    ) internal override {
        string memory message = abi.decode(payload, (string));
        emit MessageReceived(origin.srcEid, origin.sender, message);
    }

    function quoteSend(
        uint32 dstEid,
        string calldata message
    ) external view returns (uint256 nativeFee) {
        bytes memory payload = abi.encode(message);
        bytes memory options = OptionsBuilder.newOptions()
            .addExecutorLzReceiveOption(200_000, 0);
        MessagingFee memory fee = _quote(dstEid, payload, options, false);
        return fee.nativeFee;
    }
}

Що таке OFT і для чого він потрібен?

Стандарт OFT дозволяє токену існувати на кількох мережах без wrapped версій: на source chain токени спалюються, на destination chain карбуються. Загальний supply залишається константним. Жодних liquidity pool'ів, жодного lock-and-mint. Це знижує ризики impermanent loss і скорочує кількість кроків для користувача.

import { OFT } from "@layerzerolabs/lz-evm-oapp-v2/contracts/oft/OFT.sol";

contract MyOFTToken is OFT {
    constructor(
        string memory name,
        string memory symbol,
        address lzEndpoint,
        address owner
    ) OFT(name, symbol, lzEndpoint, owner) {}
}

Wormhole: універсальний месенджинг

Wormhole v2 підтримує 30+ мереж: Ethereum, Solana, Cosmos, Aptos, Sui. Архітектура — Guardian network з 19 нод (PoA), які публікують VAA (Verifiable Action Approval) — підписане підтвердження події. Середня вартість газу для VAA на Ethereum — $0.5–$2, а latency становить 15–60 секунд.

Core механіка VAA

import {
  getSignedVAAWithRetry,
  parseSequenceFromLogEth,
  CHAIN_ID_ETH,
} from "@certusone/wormhole-sdk";
import { ethers } from "ethers";

const coreBridge = new ethers.Contract(WORMHOLE_ETH_BRIDGE, BRIDGE_ABI, signer);
const tx = await coreBridge.publishMessage(0, payload, 1);
const receipt = await tx.wait();
const sequence = parseSequenceFromLogEth(receipt, WORMHOLE_ETH_BRIDGE);
const { vaaBytes } = await getSignedVAAWithRetry(
  ["https://wormhole-v2-mainnet-api.certus.one"],
  CHAIN_ID_ETH,
  emitterAddress,
  sequence,
  { retryTimeout: 1000, retryAttempts: 60 }
);
// vaaBytes містить підписаний VAA для редиму на destination chain

Wormhole vs LayerZero

Критерій LayerZero v2 Wormhole v2
Підтримувані мережі ~50 (EVM-focused) 30+ (включаючи non-EVM)
Модель безпеки Configurable DVN Guardian PoA (19 нод)
Токен стандарт OFT NTT / xERC20
Solana підтримка Так Так (нативно)
Developer tooling Відмінне Добре
Latency 2–5 хв (EVM→EVM) 15–60 сек

Якщо потрібно EVM-to-EVM — обирайте LayerZero v2. Якщо в проєкті Solana, Aptos або Cosmos — дивіться на Wormhole.

Axelar: General Message Passing

Axelar — Cosmos-based blockchain як routing layer. GMP (General Message Passing) для довільних викликів смарт-контрактів. Сильний для Cosmos↔EVM briding через IBC.

import { AxelarExecutable } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/executable/AxelarExecutable.sol";
import { IAxelarGasService } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IAxelarGasService.sol";

contract CrossChainNFTBridge is AxelarExecutable {
    IAxelarGasService immutable gasService;

    constructor(address gateway, address _gasService)
        AxelarExecutable(gateway) {
        gasService = IAxelarGasService(_gasService);
    }

    function bridgeNFT(
        string calldata destChain,
        string calldata destContract,
        uint256 tokenId
    ) external payable {
        bytes memory payload = abi.encode(msg.sender, tokenId);
        gasService.payNativeGasForContractCall{value: msg.value}(
            address(this), destChain, destContract, payload, msg.sender
        );
        gateway.callContract(destChain, destContract, payload);
        // _burnNFT logic
    }

    function _execute(
        string calldata sourceChain,
        string calldata sourceAddress,
        bytes calldata payload
    ) internal override {
        (address recipient, uint256 tokenId) = abi.decode(payload, (address, uint256));
        // _mintNFT logic
    }
}

Порівняння протоколів за безпекою

Протокол Модель довіри Ризики
LayerZero DVN (configurable) Компрометація DVN
Wormhole Guardian (19 nodes) Змова Guardians
Axelar Cosmos validators 1/3 slashing condition

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

  • Аналітика: вибір протоколу, проєктування архітектури, оцінка gas costs.
  • Розробка: смарт-контракти (Solidity/Rust), off-chain relay services, frontend інтеграція.
  • Тестування: unit тести, integration тести на testnet, fuzzing з Echidna.
  • Аудит: внутрішній код-рев’ю, залучення зовнішніх аудиторів (Zellic, OtterSec).
  • Деплой: налаштування mainnet, конфігурація моніторингу (Tenderly, Etherscan API).
  • Документація: API reference, deploy guide, troubleshooting.

Як забезпечити безпеку крос-чейн передачі?

Rate limiting — обмежте обсяг коштів: якщо протокол скомпрометований, збиток буде обмеженим. Pause механізм з multisig (без timelock для екстрених випадків). Trusted path validation — перевіряйте, що повідомлення прийшло саме з вашого контракту.

Як вибрати протокол для крос-чейн месенджингу?

LayerZero — якщо будуєте omnichain токен (OFT), omnichain NFT, або EVM-to-EVM data messaging з гнучкою безпекою.

Wormhole — якщо потрібні Solana, Aptos або Sui, або максимально широке покриття мереж.

Axelar — якщо в архітектурі є Cosmos chains, або потрібен high-level GMP з абстракцією від мереж.

Ми інтегрували крос-чейн компоненти в 15+ проєктів — від NFT bridge до DeFi aggregator. Отримайте консультацію з архітектури крос-чейн рішення — ми проаналізуємо ваші вимоги та запропонуємо оптимальний протокол. Замовте розробку безпечного мосту під ваш проєкт.

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

Ми займаємося розробкою крос-чейн мостів та крос-чейн рішень під ключ. Знаємо, як уникнути катастроф. Кілька років тому міст 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+ проектів у галузі блокчейн-інфраструктури. Свяжитесь с нами для детальної консультації — оцінимо ваш проект і запропонуємо оптимальну архітектуру мосту.