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







