При разработке кросс-чейн решений безопасность мостов — главный риск. Взломы 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 недели?
Процесс включает следующие шаги:
- Проектирование: выбор цепей, контрактов, дизайн взаимодействия.
- Разработка смарт-контрактов на Solidity с использованием Foundry/Hardhat.
- Деплой на testnet и настройка Gas Service.
- Тестирование кросс-чейн сценариев на testnet.
- Аудит безопасности (опционально).
- Деплой на 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.
- Документация по интеграции и поддержка после запуска.
Оценим ваш проект под ключ. Оставьте заявку на консультацию — мы поможем реализовать кросс-чейн функционал безопасно и в срок.







