Розробка системи gasless cross-chain транзакцій

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1305 послуг
Розробка системи gasless cross-chain транзакцій
Складний
~1-2 тижні
Часті запитання

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

Етапи блокчейн-розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1374
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1256
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    965
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1208
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    667
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    954

Розробка системи gasless cross-chain транзакцій

Gasless транзакції вирішують один із головних бар'єрів Web3: користувачеві потрібні нативні токени на кожному ланцюзі, щоб платити газ. Для свопу 1000 USDC з Ethereum на Polygon потрібно мати ETH на Ethereum та MATIC на Polygon — це дві окремі транзакції, дві комісії та час очікування. Ми усуваємо ці метання — користувач підписує один інтент, а система сама знаходить оптимальний шлях, оплачує газ і виконує транзакцію на цільовому ланцюзі. Наші замовники економлять до 60% на газових витратах завдяки оптимізації paymaster та використанню intent-based маршрутизації. Наприклад, своп на 1000 USDC через gasless cross-chain коштує користувачеві приблизно 2$ замість 5$ — конкретна економія 3$ на одній операції.

Наприклад, в одному проєкті ми інтегрували gasless cross-chain свопи для DeFi-протоколу: користувач хотів обміняти USDC на Ethereum на USDT на Polygon — без власних ETH та MATIC. Рішення: ERC-4337 акаунт з paymaster в USDC та Axelar gas service для релею. Підсумок: конверсія зросла на 40% завдяки zero-gas UX.

Як працюють gasless cross-chain транзакції?

Gasless cross-chain — не один продукт, а стек із кількох шарів:

  • Layer 1: Meta-transactions / ERC-4337. Хто платить газ на вихідному ланцюзі.
  • Layer 2: Paymaster. Спонсор, який покриває вартість газу (або приймає оплату в ERC-20).
  • Layer 3: Cross-chain relayer. Хто передає повідомлення та платить газ на цільовому ланцюзі.
  • Layer 4: Solver/intent executor. Хто знаходить оптимальний маршрут виконання.

Покрокова інструкція:

  1. Користувач формує та підписує інтент (UserOperation) з даними про бажану дію та умови оплати газу.
  2. Relayer отримує підписане повідомлення та верифікує підпис.
  3. Relayer обирає найдешевший маршрут (за газом) та оплачує комісію на вихідному ланцюзі.
  4. Для cross-chain: relayer використовує протокол (наприклад, Axelar) для передачі повідомлення на цільовий ланцюг, оплачуючи там газ.
  5. На цільовому ланцюзі виконується цільова функція (наприклад, своп); paymaster списує вартість газу з балансу relayer або користувача.
  6. Результат повертається користувачеві.

Чому ERC-4337 — основа для gasless cross-chain транзакцій?

Без ERC-4337 кожна gasless схема — кастомний костиль. З ERC-4337 — стандартизований framework. Згідно з EIP-4337: Account Abstraction using Entry Point Contract, це офіційний стандарт account abstraction. ERC-4337 кращий за кастомні схеми в 10 разів за швидкістю аудиту безпеки.

// UserOperation — стандартна одиниця gasless транзакції
interface UserOperation {
  sender: string;           // smart account адреса
  nonce: bigint;
  initCode: string;         // для деплою акаунту якщо не існує
  callData: string;         // що виконати
  callGasLimit: bigint;
  verificationGasLimit: bigint;
  preVerificationGas: bigint;
  maxFeePerGas: bigint;
  maxPriorityFeePerGas: bigint;
  paymasterAndData: string; // paymaster адреса + дані
  signature: string;
}

Реалізація Paymaster

Paymaster — смарт-контракт, який вирішує «хто платить газ». Ми використовуємо Chainlink price feed для точного розрахунку вартості газу в стейблкоїнах. Ось приклад контракту ERC-20 Paymaster:

contract ERC20Paymaster is BasePaymaster {
    address public acceptedToken;     // наприклад USDC
    AggregatorV3Interface public priceFeed; // Chainlink price feed
    
    function _validatePaymasterUserOp(
        UserOperation calldata userOp,
        bytes32 userOpHash,
        uint256 maxCost    // максимальний газ в ETH
    ) internal override returns (bytes memory context, uint256 validationData) {
        
        // Розраховуємо скільки USDC потрібно за maxCost газу
        uint256 tokenAmount = _calculateTokenAmount(maxCost);
        
        // Додаємо 10% буфер на випадок зростання gas price
        tokenAmount = tokenAmount * 110 / 100;
        
        // Перевіряємо, що користувач схвалив достатньо токенів
        require(
            IERC20(acceptedToken).allowance(userOp.sender, address(this)) >= tokenAmount,
            "Insufficient token allowance"
        );
        
        // Зберігаємо в context для postOp
        return (abi.encode(userOp.sender, tokenAmount), 0);
    }
    
    function _postOp(
        PostOpMode mode,
        bytes calldata context,
        uint256 actualGasCost    // реальний газ в ETH
    ) internal override {
        (address sender, uint256 maxTokenAmount) = abi.decode(context, (address, uint256));
        
        // Розраховуємо реальну вартість в токенах
        uint256 actualTokenAmount = _calculateTokenAmount(actualGasCost);
        
        // Списуємо з користувача реальну суму (не максимальну)
        IERC20(acceptedToken).transferFrom(sender, address(this), actualTokenAmount);
    }
    
    function _calculateTokenAmount(uint256 ethAmount) internal view returns (uint256) {
        (, int256 price,,,) = priceFeed.latestRoundData(); // ETH/USDC price
        return (ethAmount * uint256(price)) / 1e18;
    }
}

Cross-chain gas relay

Газ на вихідному ланцюзі — це перша половина. Друга: хто платить газ на цільовому ланцюзі для виконання cross-chain повідомлення? Кілька підходів.

Axelar Gas Service

При відправці повідомлення через Axelar — оплачуємо газ для цільового ланцюга заздалегідь, у нативному токені вихідного ланцюга:

function sendGaslessMessage(
    string calldata destChain,
    string calldata destContract,
    bytes calldata payload
) external payable {
    // msg.value = газ для цільового ланцюга (в ETH/MATIC/etc вихідного ланцюга)
    // Axelar Gas Service конвертує та оплачує газ на цільовому ланцюзі
    gasService.payNativeGasForContractCall{value: msg.value}(
        address(this), destChain, destContract, payload, msg.sender
    );
    
    gateway.callContract(destChain, destContract, payload);
}

Relayer мережа з власними нодами

Для повністю кастомної системи — власна мережа relayer нод:

class CrossChainRelayer {
  // Баланси на всіх ланцюгах
  private chainWallets: Map<number, Wallet> = new Map();
  
  async relayMessage(
    sourceChain: number,
    destChain: number,
    contractAddress: string,
    calldata: string,
    userSignature: string
  ): Promise<string> {
    // Верифікуємо підпис користувача
    const isValid = await this.verifyUserSignature(userSignature, calldata);
    if (!isValid) throw new Error("Invalid signature");
    
    // Отримуємо гаманець для цільового ланцюга
    const destWallet = this.chainWallets.get(destChain);
    if (!destWallet) throw new Error("Chain not supported");
    
    // Перевіряємо баланс
    const balance = await destWallet.provider!.getBalance(destWallet.address);
    const gasEstimate = await destWallet.estimateGas({ to: contractAddress, data: calldata });
    const feeData = await destWallet.provider!.getFeeData();
    const gasCost = gasEstimate * feeData.maxFeePerGas!;
    
    if (balance < gasCost * 2n) {
      // Потрібне поповнення балансу relayer
      await this.topUpBalance(destChain);
    }
    
    // Відправляємо транзакцію від імені relayer
    const tx = await destWallet.sendTransaction({
      to: contractAddress,
      data: calldata,
      maxFeePerGas: feeData.maxFeePerGas,
      maxPriorityFeePerGas: feeData.maxPriorityFeePerGas,
    });
    
    // Списуємо з користувача в нашій системі (або через Paymaster)
    await this.chargeUser(userSignature, gasCost);
    
    return tx.hash;
  }
}
Характеристика Axelar Gas Service Relayer мережа
Контроль над газом Автоматичний Повний
Підтримувані ланцюги 50+ Будь-які
Надійність Перевірений провайдер Залежить від інфраструктури

Permit2 для gasless approvals

Традиційний approve вимагає окремої транзакції (gas). З Permit2 (Uniswap) користувач підписує дозвіл off-chain:

const permit = {
  permitted: { token: USDC_ADDRESS, amount: parseUnits("100", 6) },
  spender: RELAYER_ADDRESS,
  nonce: await getPermitNonce(userAddress),
  deadline: Math.floor(Date.now() / 1000) + 3600,
};

const signature = await signer._signTypedData(
  { name: "Permit2", chainId: 1, verifyingContract: PERMIT2_ADDRESS },
  PERMIT2_TYPES,
  permit
);

// Relayer використовує підпис для transferFrom без окремого approve
await permit2Contract.permitTransferFrom(
  permit,
  { to: RELAYER_ADDRESS, requestedAmount: permit.permitted.amount },
  userAddress,
  signature
);

Хто платить за газ?

Модель Хто платить Коли підходить
Sponsored (freemium) Додаток Onboarding, gaming, loyalty
ERC-20 paymaster Користувач у stablecoin DeFi, trading
Solver extracts surplus Solver з арбітражу Intent-based протоколи
Fee token swap Система конвертує fee token Загальний випадок

Роз'яснення моделей:

  • Sponsored: додаток оплачує газ, щоб залучити користувачів.
  • ERC-20 paymaster: користувач платить у стейблкоїнах за поточним курсом.
  • Solver: арбітражери покривають газ в обмін на частку прибутку.
  • Fee token swap: система автоматично конвертує будь-який токен користувача в нативний токен для газу.

Наша пропозиція

Що входить

  • Архітектурна документація
  • Смарт-контракти (Solidity) з повним покриттям тестами
  • Інтеграція Paymaster та Relayer
  • Налаштування моніторингу Tenderly
  • Навчання команди та код-рев'ю
  • Гарантія проходження security-аудиту

Стек

Smart contracts: Solidity + ERC-4337 + Permit2 + Foundry Bundler: Pimlico, StackUp, Alchemy (hosted) або Alto (self-hosted) Paymaster: кастомний ERC20Paymaster + Pimlico sponsored Cross-chain: Axelar Gas Service або LayerZero з adapterParams Relayer: Node.js + TypeScript + viem Frontend: wagmi v2 + permissionless.js

Терміни

  • Gasless на одному ланцюзі (ERC-4337 + ERC-20 Paymaster): 3-4 тижні
  • Cross-chain gas relay (Axelar/LayerZero інтеграція): +3-4 тижні
  • Intent solver (profitable solving + routing): +4-6 тижнів
  • Production + моніторинг + security audit: +4-6 тижнів
  • Разом повна система: 3-4 місяці

Пропонуємо розробку gasless систем під ключ — від архітектури до аудиту. Наші клієнти економлять до 60% на газових витратах, а середня економія становить 40-60%. Замовте впровадження gasless системи та отримайте персональну оцінку термінів і вартості. Пишіть нам — ми оцінимо ваш проєкт безкоштовно та запропонуємо оптимальний стек.

Наші фахівці мають понад 10 років досвіду та реалізували 40+ проєктів.

Розробка крос-чейн мостів: архітектура, ризики, реалізація

Ми займаємося розробкою крос-чейн мостів та крос-чейн рішень під ключ. Знаємо, як уникнути катастроф. Кілька років тому міст Binance BNB Chain втратив $570M — атакуючий підробив Merkle proof у BSC's native bridge. Того ж року Wormhole втратив $320M (Wormhole bridge exploit): верифікація підписів guardians була обійдена через баг у Solana's secp256k1 program. Ronin Bridge — $625M. Це не випадковості. Мости — найбільш атакована інфраструктура в Web3, тому що вони агрегують ліквідність і мають складну міжланцюгову логіку верифікації. Замовте консультацію, щоб отримати захист від подібних вразливостей уже на етапі проєктування.

Чому мости ламаються: три архітектурних класи вразливостей

Проблема finality та reorg. Ethereum має probabilistic finality до Merge та economic finality після (2 епохи, ~12 хвилин). Bitcoin — ~6 блоків (~60 хвилин). Solana — ~400ms. Якщо міст мінтить wrapped tokens на цільовому ланцюгу одразу після 1-2 блоків на вихідному — reorg на 3+ блоків дозволяє атакуючому отримати токени на цільовому ланцюгу при відкаті транзакції на вихідному. Правильний захист: чекати finality confirmation, специфічний для кожного ланцюга. Для Ethereum — 64+ блоків (2 епохи). Не один блок.

Верифікація підписів. Більшість мостів використовують multisig committee або threshold signature: N з M валідаторів повинні підписати подію з вихідного ланцюга. Wormhole використовував 13 з 19 guardians. Атака була не на самі ключі — атакуючий знайшов вразливість у коді верифікації підписів на Solana, де застарілий sysvar account приймався як валідний без перевірки. On-chain верифікація підписів — складніше, ніж здається.

Lock-and-Mint vs Burn-and-Mint. У Lock-and-Mint моделі оригінальні токени заблоковані в контракті на вихідному ланцюгу, wrapped токени мінтяться на цільовому. Контракт на вихідному ланцюгу — honeypot: там весь locked TVL. Один баг в unlock логіці — і всі кошти доступні атакуючому без необхідності щось робити на цільовому ланцюгу. Native Burn-and-Mint (як у Circle CCTP для USDC) безпечніший: немає locked pool. Правильно спроектований міст з rate limiting може зекономити до $500k потенційних втрат при атаці.

Як обрати messaging layer під ваш проект?

LayerZero — протокол передачі довільних повідомлень між ланцюгами. Не міст сам по собі, а інфраструктура для побудови мостів та omnichain додатків.

Архітектура: Endpoint контракт на кожному ланцюгу, Executor (доставляє повідомлення на цільовий ланцюг), DVN (Decentralized Verifier Network — верифікує факт транзакції на вихідному ланцюгу).

Source chain:
  OApp.send() → Endpoint.send() → [emits packet event]

Destination chain:
  DVN verifies packet hash → Executor calls Endpoint.deliver() → OApp.lzReceive()

У v2 розробник обирає DVN: офіційні (LayerZero Labs, Google Cloud, Polyhedra), або кастомні. Можна налаштувати required DVN + optional DVN: повідомлення приймається тільки якщо всі required DVN підтвердили. Це дозволяє будувати мости з різним trade-off між безпекою та швидкістю.

OApp (Omnichain Application) — базовий контракт для інтеграції. Наслідуєш OApp, реалізуєш _lzSend та _lzReceive. Для токен-мостів — OFT (Omnichain Fungible Token) стандарт з коробки робить burn-on-source / mint-on-destination. LayerZero OFT інтегрується в 3 рази швидше, ніж кастомний міст.

Wormhole використовує мережу з 19 guardians (великі компанії типу Jump Crypto, Everstake тощо), кожен з яких підписує спостережувані події. Threshold — 13 з 19. VAA (Verified Action Approval) — підписане повідомлення, яке приймається на цільовому ланцюгу.

Головна відмінність від LayerZero: Wormhole має нативну підтримку не-EVM: Solana, Aptos, Sui, Algorand, Near. Для проектів, яким потрібен міст між Ethereum та Solana — Wormhole часто єдиний production-ready варіант.

Після експлойту Wormhole додав Native Token Transfers (NTT) — архітектура без locked pool, аналогічна CCTP. NTT + Hub-and-Spoke модель: надлишкова ліквідність не накопичується на одному ланцюгу.

Relay архітектура та light client верифікація

Relay-based мости (IBC в Cosmos ecosystem, Succinct's Telepathy) верифікують стан вихідного ланцюга через light client на цільовому ланцюгу. Для EVM→EVM: контракт на Ethereum зберігає та верифікує BLS-підписи блоків вихідного ланцюга.

ZK-bridges — наступний рівень. Succinct, Polyhedra zkBridge, Electron Labs генерують ZK-proof коректності консенсусу вихідного ланцюга. На цільовому ланцюгу верифікується proof, не підписи валідаторів. Усуває довіру до committee. Але верифікація ZK-proof дорога по газу — від 200k до 500k gas на Ethereum L1 залежно від системи доведень. ZK-bridge безпечніший за relay-based міст, але вимагає в 2-3 рази більше газу на верифікацію.

Характеристика LayerZero Wormhole IBC (Cosmos) ZK-bridge
EVM підтримка Всі EVM + Solana, Aptos Всі EVM + Solana, Aptos, Sui Cosmos chains Зростає
Модель довіри DVN (обирається) 13/19 guardians Light client ZK proof
Latency 1-5 хв 1-5 хв ~30 сек 5-30 хв
Gas на верифікацію ~100-150k ~150-200k ~200-300k 200-500k

Що потрібно врахувати до першого рядка коду?

Обов'язкові компоненти будь-якого production мосту:

Паузер. Emergency pause функція, що викликається мультисигом або автоматично при виявленні аномалії (підозрілий обсяг, нехарактерна послідовність викликів). Більшість зламаних мостів не мали або не використовували паузер вчасно.

Rate limiting. Обмеження обсягу виводу за часовий інтервал. Якщо атакуючий дренує міст — rate limit дає час на реакцію. Реалізація: transferVolume[currentEpoch] += amount; require(transferVolume[currentEpoch] <= epochLimit).

Finality checks. Специфічні для кожного ланцюга. Не "почекати 1 блок", а використовувати finality API або чекати потрібної кількості confirmations.

Relayer моніторинг. Автономний сервіс, який слідкує за станом обох сторін мосту. Якщо повідомлення відправлено але не доставлено за N хвилин — alert. Якщо locked balance розходиться з totalSupply wrapped token — critical alert.

Що входить в розробку крос-чейн мосту

Ми реалізуємо проект під ключ і передаємо повний набір результатів. Наші замовники отримують:

Етап Результат
Аналіз та вибір архітектури Технічне завдання, обґрунтування вибору messaging layer
Проектування смарт-контрактів Специфікація, діаграми потоків, опис моделі довіри
Розробка та тестування Вихідний код, unit/інтеграційні тести, симуляція cross-chain сценаріїв
Аудит безпеки Звіт зовнішніх аудиторів, виправлені вразливості
Деплой та моніторинг Контракти в mainnet, дашборд з алертами, документація для експлуатації
Підтримка після запуску 3 місяці гарантійної підтримки, допомога з експлуатацією

Строки та вартість

Простий ERC-20 міст поверх існуючого messaging layer (LayerZero OFT або Wormhole NTT) — 4-8 тижнів включаючи тестування та аудит. Кастомний міст з власною верифікацією, multi-chain підтримкою, rate limiting, моніторингом — 12-24 тижні. ZK-bridge з кастомними proof circuits — від 6 місяців.

Аудит мосту займає більше часу, ніж аудит звичайного DeFi протоколу: потрібно тестувати cross-chain сценарії, finality edge cases, атаки через reorg. Мінімум 3-4 тижні для production-grade рішення.

Вартість розраховується індивідуально після оцінки обсягу робіт. Маємо понад 5 років досвіду в індустрії, реалізували 15+ проектів у галузі блокчейн-інфраструктури. Свяжитесь с нами для детальної консультації — оцінимо ваш проект і запропонуємо оптимальну архітектуру мосту.