Розробка Account Abstraction Paymaster під ключ

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.

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

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

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

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

Розробка Account Abstraction Paymaster

ERC-4337 Account Abstraction усуває головний бар'єр — залежність від нативного токена для газових комісій. Paymaster — це контракт, який бере оплату газу на себе, дозволяючи користувачам взаємодіяти з dApp без необхідності мати ETH. Перехід на gasless UX збільшує конверсію на 40% і знижує відтік користувачів на 30%. Наша команда з досвідом у блокчейн-розробці створює Paymaster-рішення під ключ, гарантуючи оптимальну газову ефективність та захист від атак. Ми використовуємо перевірені патерни та забезпечуємо безшовний UX для ігор, DeFi та соціальних додатків. Отримайте консультацію щодо вашого проєкту — пишіть, оцінимо безкоштовно.

Чому Paymaster критичний для gasless UX?

Без Paymaster користувачі зобов'язані купувати та тримати ETH для кожної транзакції. Це знижує конверсію в 2-3 рази порівняно з gasless досвідом. Paymaster вирішує проблему: він спонсорує газ або приймає оплату в будь-якому ERC-20 токені. Економія на газі для користувачів досягає 100%, а для бізнесу — зниження відтоку на 40%.

Як Paymaster вписується в ERC-4337

У стандартній транзакції: користувач → підписує транзакцію → платить gas в ETH. В ERC-4337 flow: користувач підписує UserOperation (не транзакцію) → Bundler збирає UserOps в батч → EntryPoint контракт викликає validatePaymasterUserOp → якщо Paymaster схвалює — платить gas → postOp викликається після виконання.

UserOperation {
    sender,           // smart account користувача
    callData,         // що виконати
    paymasterAndData, // адреса Paymaster + його дані
    signature,        // підпис користувача
    ...gasFields
}

paymasterAndData — це address(paymaster) + bytes(paymasterSpecificData). Paymaster декодує свої дані з цього поля.

Типи Paymaster та їх архітектура

Verifying Paymaster (sponsored gas)

Найпоширеніший патерн: off-chain сервіс вирішує, чи спонсорувати конкретну UserOperation, і підписує дозвіл. Paymaster контракт верифікує цей підпис. EIP-4337 описує сигнатуру _validatePaymasterUserOp.

function _validatePaymasterUserOp(
    UserOperation calldata userOp,
    bytes32 userOpHash,
    uint256 maxCost
) internal override returns (bytes memory context, uint256 validationData) {
    // Декодуємо дані: підпис backend-а + термін дії
    (uint48 validUntil, uint48 validAfter, bytes calldata signature) =
        abi.decode(userOp.paymasterAndData[20:], (uint48, uint48, bytes));

    // Хеш для верифікації = хеш UserOp + validUntil + validAfter
    bytes32 hash = ECDSA.toEthSignedMessageHash(
        keccak256(abi.encode(userOpHash, validUntil, validAfter))
    );

    // Якщо підпис від verifyingSigner — спонсоруємо
    if (ECDSA.recover(hash, signature) != verifyingSigner) {
        return ("", _packValidationData(true, validUntil, validAfter));
    }

    return ("", _packValidationData(false, validUntil, validAfter));
}

Backend отримує UserOp від frontend, перевіряє умови (користувач в whitelist? чи досяг ліміту безкоштовних транзакцій? чи тип операції дозволений?), підписує та повертає paymasterAndData. Frontend підставляє в UserOp і відправляє Bundler-у.

ERC-20 Paymaster (gas в токенах)

Користувач платить gas в USDC/USDT замість ETH. Paymaster приймає ERC-20 і поповнює свій ETH депозит в EntryPoint з власних коштів.

function _validatePaymasterUserOp(...)
    internal override returns (bytes memory context, uint256 validationData) {

    (address token, uint256 exchangeRate) =
        abi.decode(userOp.paymasterAndData[20:], (address, uint256));

    uint256 tokenCost = (maxCost * exchangeRate) / 1e18;

    // Перевіряємо allowance користувача
    require(
        IERC20(token).allowance(userOp.sender, address(this)) >= tokenCost,
        "Insufficient allowance"
    );

    // context передаємо в postOp для реального списання
    return (abi.encode(userOp.sender, token, tokenCost), 0);
}

function _postOp(PostOpMode mode, bytes calldata context, uint256 actualGasCost)
    internal override {
    (address sender, address token, uint256 maxTokenCost) =
        abi.decode(context, (address, address, uint256));

    // Реальна вартість може бути менше maxCost
    uint256 actualTokenCost = (actualGasCost * exchangeRate) / 1e18;
    IERC20(token).transferFrom(sender, address(this), actualTokenCost);
}

Ключова складність ERC-20 Paymaster — exchange rate. Потрібен актуальний курс ETH/token на момент транзакції. Варіанти: Chainlink oracle, TWAP з Uniswap V3, або централізований price feed від backend.

Порівняння Verifying та ERC-20 Paymaster

Критерій Verifying Paymaster ERC-20 Paymaster
Газові комісії Безкоштовно для користувача Оплата в токенах (низька комісія)
Складність реалізації Середня (back-end signer) Висока (оракул, ліквідність)
Ризик abuse Високий, потрібен rate limiting Низький (користувач платить)
UX Максимально гладкий Потрібен approve токена
Підтримка активів Тільки ETH депозит Будь-які ERC-20

Verifying Paymaster за продуктивністю в 2 рази швидше в інтеграції, але потребує жорстких лімітів. ERC-20 Paymaster дає гнучкість, але дорожчий у розробці. Вибір залежить від бізнес-моделі.

Як налаштувати rate limiting для Paymaster?

Без обмежень один користувач може дренувати весь бюджет через спам. Стратегії:

  1. Per-user spending limit. Off-chain в Verifying Paymaster backend: кожен адреса має місячний ліміт в USD. Backend відмовляє у підписі при перевищенні.
  2. Cooldown період. Не більше N транзакцій на годину на адресу. Зберігається в Redis з TTL.
  3. Transaction type whitelist. Backend перевіряє callData userOp: спонсоруються лише виклики конкретних контрактів.
  4. Reputation system. Нові акаунти отримують мінімальний ліміт, який зростає після верифікації (Worldcoin, Sign In With Ethereum + email).

Для per-user limit використовуємо Redis з ключем user:{address}:spent та TTL місяць. Cooldown реалізуємо через Redis з лічильником за годину. Whitelist зберігаємо в базі PostgreSQL. Backend підписує тільки якщо всі перевірки пройдені.

Депозит та управління балансом

Paymaster повинен тримати ETH депозит в EntryPoint контракті. EntryPoint списує gas з цього депозиту після кожної спонсорованої UserOperation.

// Поповнення депозиту
entryPoint.depositTo{value: 1 ether}(address(paymaster));

// Перегляд балансу
uint256 balance = entryPoint.balanceOf(address(paymaster));

// Виведення (unstake period для staked Paymaster)
entryPoint.withdrawTo(payable(owner), amount);

Для production потрібен моніторинг балансу та автоматичне поповнення. Якщо депозит вичерпається — всі UserOp через цей Paymaster почнуть ревертитися. Рекомендуємо: alert при балансі нижче порогу + auto-topup з treasury через Chainlink Automation або кастомний keeper.

Стек та інфраструктура

Компонент Технології
Paymaster контракт Solidity + eth-infinitism/account-abstraction
Backend signer Node.js + viem + власний signer wallet
Bundler Stackup / Alchemy Bundler / власний (go-bundler)
Rate limiting Redis + BullMQ
Моніторинг депозиту Chainlink Automation / кастомний keeper
SDK для frontend permissionless.js / ZeroDev SDK / Biconomy SDK
Тестування Foundry + hardhat-deploy для fork-тестів

Вибір Bundler провайдера

Bundler — сервіс, що приймає UserOperations та включає їх в блок. Варіанти:

  • Alchemy — найпростіший старт, хороша документація, платний при масштабі
  • Stackup — open-source bundler, можна self-host
  • Pimlico — спеціалізується на AA, зручний Paymaster API
  • Self-hosted (go-bundler) — повний контроль, потрібна інфраструктура

Що входить в роботу?

  • Аудит архітектури та вибір типу Paymaster
  • Розробка смарт-контракту з тестами (Foundry)
  • Backend signer сервіс з API та rate limiting
  • Інтеграція з frontend (SDK)
  • Моніторинг балансу та автоматичне поповнення
  • Документація та навчання команди
  • Гарантія 6 місяців на контракти

Процес розробки

Аналітика (2-3 дні). Тип Paymaster (sponsored vs ERC-20), цільові мережі, ліміти та політики спонсорування, вибір Bundler провайдера.

Розробка контракту (1-2 тижні). Verifying або ERC-20 Paymaster, тести на EntryPoint v0.6/v0.7, deposit management.

Backend signer сервіс (1 тиждень). API для підпису UserOp, rate limiting, rate oracle (для ERC-20).

Інтеграція з frontend (3-5 днів). SDK підключення, UserOperation побудова, моніторинг статусу.

Моніторинг та операції (3-5 днів). Алерти на баланс, auto-topup, dashboard витрат.

Базовий Verifying Paymaster з rate limiting — 3-4 тижні. ERC-20 Paymaster з oracle та full моніторингом — 5-7 тижнів.

Замовте розробку Paymaster під ключ: залиште заявку, ми розрахуємо вартість та терміни протягом робочого дня. Зв'яжіться з нами для безкоштовної консультації щодо вашого проєкту.

Ми розробляємо криптогаманці під ключ — від custodial-рішень для fintech до смарт-контрактних акаунтів на EIP-4337. 5+ років на ринку блокчейн-розробки, 40+ реалізованих проектів. Розберемо, яку архітектуру вибрати під вашу задачу і чому MPC або Account Abstraction вирішують проблему приватних ключів, яку не змогли закрити MetaMask та класичні HD-гаманці.

Як обрати архітектуру гаманця?

Чому класичні гаманці небезпечні для бізнесу?

Seed-фраза у браузерному розширенні — єдиний спосіб відновити доступ. Для роздрібного користувача це бар'єр входу (втратив фразу — втратив гроші). Для корпоративного казначейства — несумісно з compliance (KYC/AML, рольова модель, мультипідпис). Будь-який витік одного ключа компрометує всі кошти. Ці ризики закладені в архітектуру, а не в поганий UX.

Ми усуваємо їх на рівні протоколу: MPC-гаманці (ключ ніколи не зібраний цілком), смарт-контрактні гаманці (логіка авторизації в коді), апаратні HSM для інституційного зберігання. Нижче — деталі.

Custodial vs Non-custodial: у чому реальна різниця

Custodial — провайдер зберігає приватний ключ. Користувач аутентифікується через email/password/OAuth. Відновлення тривіальне, KYC/AML вбудовані. Для централізованих додатків з фінансовими операціями — часто єдиний регуляторно прийнятний варіант. Ризик: single point of failure (злом Bitfinex — значні втрати, FTX — понад значну суму клієнтських коштів).

Non-custodial — ключі у користувача. Провайдер не має доступу до коштів. Відповідальність за зберігання лягає на користувача. Для 99% людей це непрацююча модель без додаткового захисту — тут і приходить MPC.

MPC-гаманці: ключ, якого немає

Multi-Party Computation (MPC) — криптографічний протокол, що дозволяє кільком сторонам спільно підписати транзакцію, не розкриваючи свої часткові секрети. Приватний ключ ніколи не існує в зібраному вигляді.

Стандартна схема: 2-of-3 MPC між користувачем (частка на пристрої), сервером провайдера та резервним хмарним сховищем. Транзакція підписується двома будь-якими з трьох сторін. Телефон втрачено — відновлення через сервер + хмару. Сервер скомпрометовано — атакуючий володіє лише однією часткою, підпис неможливий.

TSS (Threshold Signature Scheme) — конкретна реалізація MPC для ECDSA/EdDSA. Алгоритми: GG18, GG20, CGGMP21 (останній швидший і з кращими security proof). Бібліотеки: tss-lib (Go, від Binance), multi-party-sig (Go, від Coinbase), ZenGo-X/multi-party-ecdsa (Rust).

MPC не потребує on-chain змін — для блокчейна підпис виглядає як звичайний single-key підпис. Це дає економію gas та зберігає конфіденційність схеми управління ключами (не публікується в ланцюжку) — на відміну від мультисига.

Account Abstraction (EIP-4337): смарт-контракт як гаманець

EIP-4337 повністю змінює модель: замість EOA (Externally Owned Account) використовується смарт-контракт Account. Логіка авторизації — в коді контракту, а не в криптографії протоколу. Це відкриває довільну логіку підпису, соціальне відновлення, сесійні ключі, sponsored транзакції та батчинг операцій.

User → UserOperation → Bundler → EntryPoint contract → Account contract
                                          ↑
                                    Paymaster (optional, pays gas)

UserOperation — новий тип об'єкта (не L1-транзакція). Bundler збирає UserOps з альтернативного mempool, упаковує в одну транзакцію та відправляє в EntryPoint. EntryPoint викликає validateUserOp на Account контракті — Account сам вирішує, чи дійсний підпис.

Практичні можливості:

Соціальне відновлення. Контракт зберігає список guardian'ів (інші адреси або сервіс). Втрата ключа — guardians голосують за заміну. Argent використовує схему з 2020 року.

Сесійні ключі. Тимчасовий ключ з обмеженими правами: взаємодія лише з конкретним контрактом, до певної дати, до певної суми. Для GameFi та dApps — користувач не підписує кожну мікро-транзакцію.

Paymaster. Сторонній контракт платить газ за користувача. Паттерн для онбордингу: користувач не тримає ETH, газ спонсорує dApp або береться з ERC-20 токенів.

Реалізації: Safe{Core} Protocol, Biconomy SDK (Stackup), ZeroDev (Kernel), Alchemy (Rundler bundler). На Ethereum mainnet, Polygon, Arbitrum, Optimism EntryPoint v0.6/v0.7 задеплоєний та активний. Гарантуємо сумісність з останніми версіями контрактів.

Hardware Security Module для корпоративних гаманців

Для казначейств та інституційного зберігання: HSM (Hardware Security Module). Ключ генерується і ніколи не покидає захищений чип. Підпис — всередині HSM. Підтримується апаратна атестація. Використовувані рішення: AWS CloudHSM, Azure Dedicated HSM, Thales Luna, YubiHSM 2 (для невеликих обсягів). Інтеграція через PKCS#11 або cloud-specific API.

Комбінація HSM + MPC — оптимальна для інституційного використання: ключові частки зберігаються в HSM на різних серверах/юрисдикціях, підпис через TSS. Це забезпечує відповідність регуляторним вимогам (наприклад, для крипто-кастодіанів).

Інтеграція з dApps: WalletConnect та стандарти

Будь-який гаманець повинен вміти взаємодіяти з dApps. Стандарт — WalletConnect v2 (Sign API): QR-код або deep link, peer-to-peer зашифрований канал через relay сервер. Для браузерних розширень — EIP-1193 (Ethereum Provider API).

На фронтенді використовуємо wagmi + viem — один інтерфейс для MetaMask, WalletConnect, Coinbase Wallet, injected providers. Для Account Abstraction — EIP-5792 (wallet capabilities) та EIP-7677 (paymaster service).

Процес розробки

  1. Threat model — хто користувач (B2C, B2B, institutional), які операції, яка допустима risk model. Від цього залежить архітектура.
  2. Вибір та проектування схеми зберігання ключів — MPC, HSM, мультисиг або їх комбінація.
  3. Розробка Account контракту (якщо EIP-4337) або інтеграція MPC-бібліотеки.
  4. Backend — MPC-координація, управління сесіями, paymaster-сервіс (якщо потрібен).
  5. Мобільний/браузерний застосунок — UI з інтеграцією WalletConnect, біометрії, QR.
  6. Інтеграція з dApps — EIP-1193, WalletConnect v2.
  7. Аудит контрактів та криптографічних реалізацій — обов'язковий етап. MPC-бібліотеки мають відомі вразливості (GG18 піддається атаці при malicious participant без abort protocol). Використовуємо бібліотеки з актуальними security review (CGGMP21). Досвід проходження аудитів у Certik, Hacken, Trail of Bits — підтверджуємо сертифікатами.

Що входить в роботу (deliverables)

  • Вихідні коди смарт-контрактів (Solidity/Rust) з документацією
  • Backend-сервіс MPC-координації (на Go або Rust) з API
  • Мобільний застосунок (iOS/Android) або браузерне розширення
  • Інтеграція з WalletConnect, Ledger/Trezor (за потреби)
  • Підготовка до аудиту безпеки (звіт зі списком вразливостей)
  • Документація адміністратора та користувача
  • Доступ до репозиторію, CI/CD, моніторинг (Tenderly, Etherscan API)
  • Навчання вашої команди (2-3 сесії)
  • Підтримка після запуску — 1 місяць

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

Тип рішення Строки (робочі тижні)
Custodial з базовим UI 4–8
Non-custodial з MPC-інтеграцією 8–16
EIP-4337 Account з paymaster 6–12
Institutional (HSM + MPC + compliance) від 16

Вартість розраховується індивідуально під ваш проект. Оцінимо за 1 день — зв'яжіться з нами. Надаємо гарантію на код та timeline.

Типові помилки при розробці криптогаманців (і як їх уникнути)

  • Використання застарілих MPC-бібліотек — GG18 без abort protocol. Обираємо CGGMP21 або tss-lib з актуальними audit report.
  • Жорстка прив'язка до одного блокчейну — не закладають абстракцію під L2/сайдчейни. Використовуємо viem/wagmi для кросс-чейн.
  • Ігнорування MEV-атак — при використанні мультисига без таймлоків. Додаємо tx simulation (Tenderly) та sandwitching protection.
  • Відсутність fallback-механізму відновлення — для Account Abstraction не налаштовують social recovery. Закладаємо з першого релізу.

Усуваємо ці граблі на етапі проектування — під кожен проект складаємо threat model та security checklist.

Потрібен надійний гаманець без компромісів? Отримайте консультацію нашого архітектора — розберемо вашу задачу та запропонуємо архітектуру з точним кошторисом. Залишайте заявку — відповімо протягом дня.