Розробка системи unified accounts (єдиний акаунт на всіх мережах)

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка системи unified accounts (єдиний акаунт на всіх мережах)
Складний
від 2 тижнів до 3 місяців
Часті запитання

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

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

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

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

Система об'єднаних рахунків крос-чейн

Об'єднані рахунки — користувач має один ідентифікатор та один "логічний" баланс, що автоматично використовується на будь-якому чейні. Еволюція від "мультичейн" (багато гаманців) до chain-abstracted (один гаманець, прозора мультичейн). Нетривіально реалізувати правильно: вирішити кілька незалежних проблем одночасно.

Технічний рівень

Наївна: той же адрес на кожному чейні via CREATE2, синхронізація стану через bridge. Працює але створює складність — фрагментований стан, затримка синхронізації та вартість.

Продвинута розділяє:

  • Identity layer — хто ви (один ідентифікатор усіх чейнів)
  • Intent layer — що ви хочете (абстраговано від конкретного чейна)
  • Execution layer — як це виконується (маршрутизація, bridging, виконання)
  • Settlement layer — остаточний розрахунок

Детермінhuvані адреси via CREATE2

Перший крок — той же адрес усіх EVM чейнів:

// Factory з тим же адресом на всіх чейнах
contract AccountFactory {
    function deployAccount(
        bytes32 salt,
        bytes calldata initCode
    ) external returns (address account) {
        // CREATE2: адрес залежить тільки від factory + salt + initCode
        // Та сама factory на всіх EVM → той же Account адрес
        assembly {
            account := create2(0, add(initCode, 32), mload(initCode), salt)
        }
    }
    
    function predictAddress(
        bytes32 salt,
        bytes32 initCodeHash
    ) external view returns (address) {
        return address(uint160(uint256(keccak256(abi.encodePacked(
            bytes1(0xff),
            address(this),
            salt,
            initCodeHash
        )))));
    }
}

Keyless deployment через ERC-2470 Singleton Factory забезпечує той же factory адрес на всіх EVM. Той же salt + initCode = той же account адрес.

Крос-чейн синхронізація стану

Другий крок — синхронізація даних рахунку між чейнами. Паттерн: Primary chain + синхронізація via bridge.

contract UnifiedAccountPrimary {
    mapping(address => bool) public owners;
    uint256 public nonce;
    
    function addOwnerAndSync(
        address newOwner,
        uint64[] calldata targetChains,
        address[] calldata targetAccounts
    ) external onlyOwner {
        owners[newOwner] = true;
        
        for (uint i = 0; i < targetChains.length; i++) {
            bytes memory payload = abi.encode(
                "ADD_OWNER",
                newOwner,
                ++nonce
            );
            bridge.sendMessage(targetChains[i], targetAccounts[i], payload);
        }
        
        emit OwnerAdded(newOwner);
    }
}

contract UnifiedAccountReplica {
    uint256 public lastSyncedNonce;
    
    function receiveSync(
        bytes calldata payload,
        bytes32 originMessageId
    ) external onlyBridge {
        (string memory action, address target, uint256 nonce) = 
            abi.decode(payload, (string, address, uint256));
        
        require(nonce == lastSyncedNonce + 1, "Invalid nonce");
        lastSyncedNonce = nonce;
        
        if (keccak256(bytes(action)) == keccak256(bytes("ADD_OWNER"))) {
            _addOwner(target);
        }
    }
}

Intent-based виконання

User intent (stake, swap, transfer) абстраговано від чейна. Система маршрутизує та виконує:

interface UserIntent {
  action: "stake" | "swap" | "transfer" | "borrow";
  targetProtocol: string;
  targetChain?: number;
  inputToken: string;
  inputAmount: string;
  minOutputAmount?: string;
}

class IntentRouter {
  async resolveIntent(intent: UserIntent, userProfile: UserProfile): Promise<ExecutionPlan> {
    const targetChain = intent.targetChain || 
      await this.findOptimalChain(intent, userProfile);
    
    const fundingSource = await this.findBestFundingSource(
      intent.inputToken,
      intent.inputAmount,
      userProfile.balances,
      targetChain
    );
    
    const steps: ExecutionStep[] = [];
    
    if (fundingSource.chainId !== targetChain) {
      steps.push({
        type: "bridge",
        fromChain: fundingSource.chainId,
        toChain: targetChain,
        token: intent.inputToken,
        amount: intent.inputAmount,
      });
    }
    
    steps.push({
      type: intent.action,
      chainId: targetChain,
      protocol: intent.targetProtocol,
    });
    
    return { steps };
  }
}

Stack

Компонент Рішення
Smart accounts ERC-4337 (ZeroDev Kernel або Safe)
Крос-чейн мессенджинг LayerZero / Axelar / CCIP
Gas абстракція ERC-4337 Paymaster
Intent маршрутизація Кастомний сервіс + 1inch/LiFi
State синхронізація Merkle proofs + bridge
Frontend wagmi v2 + viem + React

Таймлайни

  • Базова identity (CREATE2 адреси, базова синхронізація): 4-6 тижнів
  • Intent маршрутизація + крос-чейн виконання: 6-8 тижнів
  • Gas абстракція + fee токен: 3-4 тижні
  • Аудит безпеки: 6-8 тижнів
  • Всього: 4-6 місяців