Интеграция 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.
  • Документация по интеграции и поддержка после запуска.

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