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

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

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

Часті запитання

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

  • 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

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