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







