Інтеграція Axelar: безпечні крос-чейн виклики та передача токенів

При розробці крос-чейн рішень безпека мостів — головний ризик. Злами [Cross-chain bridge](https://en.wikipedia.org/wiki/Cross-chain_bridge) та Ronin показали вразливість multisig-схем з 5-of-9 валідаторами: компрометація групи призводить до втрати коштів. Ми використовуємо **Axelar** — децентралізов

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

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

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

  • 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

При розробці крос-чейн рішень безпека мостів — головний ризик. Злами Cross-chain bridge та Ronin показали вразливість multisig-схем з 5-of-9 валідаторами: компрометація групи призводить до втрати коштів. Ми використовуємо Axelar — децентралізовану мережу з порогом атаки 2/3 з ~75 валідаторів за стейком. Це в 10 разів безпечніше, ніж Multichain. Наш досвід — 5+ років у Web3 та 20+ успішних інтеграцій — гарантує надійність реалізації.

Чому Axelar безпечніший за інші мости?

Axelar використовує proof-of-stake з threshold signatures (BLS). Валідатори мають частку в мережі, і для підпису транзакції потрібна кооперація >2/3 стейку. Це в 10 разів складніше зламати, ніж міст з 5-of-9 multisig. Крім того, Axelar регулярно проходить аудит безпеки провідними фірмами, такими як Trail of Bits. В документації Axelar зазначено: Gas Service автоматично оплачує газ на цільовому ланцюзі, позбавляючи користувача ручного управління.

Проблеми, які вирішуємо

Крос-чейн взаємодія стикається з трьома основними викликами:

  • Безпека: вразливі мости з малою кількістю валідаторів.
  • Газові витрати: подвійна оплата газу на обох ланцюгах, часто з переплатою.
  • Складність інтеграції: необхідність управляти ключами, релеями та статусами.

Axelar вирішує всі три: threshold signatures підвищують безпеку, Gas Service автоматизує оплату, а GMP спрощує виклики. Типова помилка — невірний розрахунок газу для цільового ланцюжка, що призводить до недоставки повідомлення. Використання AxelarGMPRecoveryAPI дозволяє уникнути цього.

Що вміє Axelar

GMP (General Message Passing) — передача довільних повідомлень між ланцюгами. Не тільки токени: можна викликати функцію смарт-контракту в іншому ланцюжку з довільними даними.

Canonical token bridging — стандартизований переказ токенів. USDC через Axelar — це Circle's native USDC (через Circle CCTP) або Axelar Wrapped USDC (axlUSDC), залежно від налаштування.

Squid — DEX агрегатор поверх Axelar, дозволяє виконувати cross-chain swaps в одну транзакцію (swap на вихідному ланцюзі + bridge + swap на цільовому).

GMP інтеграція

Контракт на вихідному ланцюзі

// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import { AxelarExecutable } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/executable/AxelarExecutable.sol"; import { IAxelarGateway } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IAxelarGateway.sol"; import { IAxelarGasService } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IAxelarGasService.sol"; contract SourceContract { IAxelarGateway public gateway; IAxelarGasService public gasService; constructor(address _gateway, address _gasService) { gateway = IAxelarGateway(_gateway); gasService = IAxelarGasService(_gasService); } function sendCrossChainMessage( string calldata destinationChain, // "Polygon", "avalanche", "binance" string calldata destinationAddress, // адреса контракту-отримувача bytes calldata payload ) external payable { // Оплачуємо газ для виконання на цільовому ланцюзі gasService.payNativeGasForContractCall{value: msg.value}( address(this), destinationChain, destinationAddress, payload, msg.sender ); // Надсилаємо повідомлення gateway.callContract(destinationChain, destinationAddress, payload); } } 

Контракт на цільовому ланцюзі

contract DestinationContract is AxelarExecutable { event MessageReceived(string sourceChain, string sourceAddress, bytes payload); constructor(address gateway) AxelarExecutable(gateway) {} // Викликається Axelar коли повідомлення доставлено function _execute( string calldata sourceChain, string calldata sourceAddress, bytes calldata payload ) internal override { // Декодуємо payload (address recipient, uint256 amount) = abi.decode(payload, (address, uint256)); // Виконуємо бізнес-логіку _processMessage(sourceChain, sourceAddress, recipient, amount); emit MessageReceived(sourceChain, sourceAddress, payload); } } 

Як інтегрувати GMP за 2-4 тижні?

Процес включає наступні кроки:

  1. Проектування: вибір ланцюгів, контрактів, дизайн взаємодії.
  2. Розробка смарт-контрактів на Solidity з використанням Foundry/Hardhat.
  3. Деплой на testnet та налаштування Gas Service.
  4. Тестування крос-чейн сценаріїв на testnet.
  5. Аудит безпеки (опціонально).
  6. Деплой на mainnet та моніторинг.
Етап Тривалість Опис
Аналітика 1-2 дні Визначення ланцюгів, контрактів, маршрутів
Розробка 5-10 днів Написання контрактів, налаштування SDK
Тестування 3-5 днів Testnet, gas estimation
Деплой + аудит 2-4 дні Mainnet, аудит коду

Як розрахувати газ для крос-чейн виклику?

Ключова деталь Axelar GMP — Gas Service. Користувач оплачує газ для обох ланцюгів в одній транзакції (на вихідному ланцюзі). Axelar Gas Service конвертує нативний токен і оплачує реле на цільовому ланцюзі. Розрахунок необхідного газу через AxelarGMPRecoveryAPI:

import { AxelarQueryAPI, Environment, GasToken } from "@axelar-network/axelarjs-sdk"; const api = new AxelarQueryAPI({ environment: Environment.MAINNET }); const gasEstimate = await api.estimateGasFee( "Ethereum", // source chain "Polygon", // destination chain GasToken.ETH, 300_000, // gas limit на destination 1.1 // 10% buffer ); // gasEstimate — сума в wei для передачі в payNativeGasForContractCall 

Середня вартість газу для одного виклику становить близько $10, але економія на автоматизації може досягати $5000 на місяць для активних проектів. Зв'яжіться з нами для оцінки вашого проекту.

Token Transfer з GMP

Для transfer токена + виклик функції на цільовому ланцюзі — callContractWithToken:

function sendTokenAndCall( string calldata destinationChain, string calldata destinationAddress, bytes calldata payload, string calldata symbol, // "USDC", "WETH" uint256 amount ) external payable { IERC20(gateway.tokenAddresses(symbol)).transferFrom(msg.sender, address(this), amount); IERC20(gateway.tokenAddresses(symbol)).approve(address(gateway), amount); gasService.payNativeGasForContractCallWithToken{value: msg.value}( address(this), destinationChain, destinationAddress, payload, symbol, amount, msg.sender ); gateway.callContractWithToken(destinationChain, destinationAddress, payload, symbol, amount); } 

Порівняння Axelar з іншими мостами

Характеристика Axelar Multichain Ronin
Механізм валідації PoS + threshold signatures Multisig 5-of-9 Multisig 5-of-9
Кількість валідаторів ~75 9 9
Поріг атаки >2/3 стейку 5 ключей 5 ключей
Крос-чейн виклики GMP (будь-які дані) Тільки токени Тільки токени
Підтримка Cosmos Так (IBC) Ні Ні

Squid інтеграція для cross-chain swaps

import { Squid } from "@0xsquid/sdk"; const squid = new Squid({ baseUrl: "https://apiplus.squidrouter.com" }); await squid.init(); const { route } = await squid.getRoute({ fromAddress: userAddress, fromChain: "1", // Ethereum fromToken: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", // ETH fromAmount: "1000000000000000000", // 1 ETH toChain: "137", // Polygon toToken: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", // USDC toAddress: recipientAddress, slippage: 1.0, // 1% enableBoost: true, }); // Виконання свапа const tx = await signer.sendTransaction(route.transactionRequest); 

Що входить в роботу

  • Аналітична документація: схема взаємодії ланцюгів, вибір контрактів.
  • Розробка та деплой смарт-контрактів на Solidity (з використанням Foundry/Hardhat).
  • Налаштування Gas Service та розрахунок газу.
  • Інтеграція Squid для крос-чейн свапів (опціонально).
  • Тестування на testnet та mainnet.
  • Документація з інтеграції та підтримка після запуску.

Оцінимо ваш проект під ключ. Залиште заявку на консультацію — ми допоможемо реалізувати крос-чейн функціонал безпечно та вчасно.