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

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

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

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

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

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

Чому мультичейн-токен складніший, ніж здається?

Мультичейн-токен — це не просто деплой одного й того ж ERC-20 у кілька мереж. Це архітектурне рішення з серйозними наслідками для supply management, безпеки та UX. Ми бачимо, як багато команд потрапляють у пастку: неправильно спроєктований мультичейн-токен створює ілюзію єдиного активу при реально роздробленому supply, відкриває поверхню для bridge-атак (середній збиток від яких за останні роки перевищив $1,5 млрд, а згідно звіту SlowMist Hacked Report — вже $2,5 млрд) та ускладнює governance. Наша команда з 10+ роками досвіду в блокчейні та 20+ реалізованими мультичейн-проєктами допомагає уникнути цих пасток.

Яку архітектуру обрати?

Перш ніж писати код, потрібно обрати архітектурну модель. Їх три, і вони фундаментально різняться.

Lock & Mint (канонічна модель)

Токен існує нативно на одному чейні (home chain, зазвичай Ethereum). На всіх інших чейнах існують wrapped версії. Bridge блокує токени на home chain і минтить wrapped на destination chain. При бриджингу назад — burning wrapped, unlock оригіналу. Єдиний canonical supply і проста ментальна модель для користувачів — це плюс. Але якщо bridge зламано, зловмисник може минтити wrapped токени без забезпечення. Саме так сталося при найбільших bridge-атаках, що забрали мільярди доларів.

Burn & Mint (omnichain модель)

При трансфері токен спалюється на source chain і минтиться на destination chain. Total supply глобально постійний. Цей підхід використовують LayerZero OFT та Axelar ITS. Немає замороженої ліквідності на одному чейні, токени рівноцінні на всіх мережах. Мінус — транзакція не атомарна: токен знищено на source, але може не домінтитися на destination при збої. Потрібен механізм recovery, який ми обов'язково закладаємо в контракт.

Liquidity Pool модель

Незалежні токени на кожному чейні з'єднані через AMM-пули в bridge-протоколах (Stargate, Synapse). Bridge нативного свопу, не wrapped tokens. Миттєвість (атомарний своп з пулу), немає wrapped токенів, але потрібен bootstrap liquidity на кожному чейні та можливий slippage при незбалансованих пулах.

Критерій Lock & Mint Burn & Mint (OFT) Liquidity Pool
Єдиний supply Так (canonical) Так (глобальний) Ні (роздільний)
Ризик bridge-атаки Високий Середній Низький
Атомарність трансферу Ні (потрібен unlock) Ні (потрібен recovery) Так (своп з пулу)
Газова ефективність Середня Висока Середня
Масштабування на N чейнів Складно (ліквідність) Просто Складно (bootstrap)

Реалізація на LayerZero OFT

LayerZero став де-факто стандартом для нових мультичейн-токенів. OFT — це burn & mint модель з messaging через LayerZero Endpoint. За нашими тестами, OFT у 2 рази безпечніший за Lock&Mint при тому ж рівні gas. У цьому розділі — повний код та конфігурація.

Базова реалізація OFT

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.22;

import { OFT } from "@layerzerolabs/lz-evm-oapp-v2/contracts/oft/OFT.sol";
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";

contract MyToken is OFT {
    constructor(
        string memory _name,
        string memory _symbol,
        address _lzEndpoint,   // LayerZero Endpoint адреса для поточної мережі
        address _delegate
    ) OFT(_name, _symbol, _lzEndpoint, _delegate) Ownable(_delegate) {}

    function mint(address _to, uint256 _amount) external onlyOwner {
        _mint(_to, _amount);
    }
}

На home chain деплоїмо цей контракт і минтимо весь supply. На інших чейнах деплоїмо той самий контракт, але без початкового минтингу — токени туди приходять через bridge.

Конфігурація після деплою

Після деплою на всіх чейнах потрібно зв'язати контракти через setPeer:

function configurePeers() external onlyOwner {
    // eid = endpoint ID в системі LayerZero
    // Ethereum mainnet: 30101, Arbitrum: 30110, Base: 30184, BSC: 30102

    oft.setPeer(30110, bytes32(uint256(uint160(ARBITRUM_OFT_ADDRESS))));
    oft.setPeer(30184, bytes32(uint256(uint160(BASE_OFT_ADDRESS))));
}

Відправка токенів між чейнами

function bridgeTokens(
    uint32 _dstEid,
    address _recipient,
    uint256 _amount
) external payable {
    SendParam memory sendParam = SendParam({
        dstEid: _dstEid,
        to: bytes32(uint256(uint160(_recipient))),
        amountLD: _amount,
        minAmountLD: (_amount * 995) / 1000, // 0.5% slippage tolerance
        extraOptions: OptionsBuilder.newOptions()
            .addExecutorLzReceiveOption(200000, 0), // gas на destination
        composeMsg: "",
        oftCmd: ""
    });

    MessagingFee memory fee = oft.quoteSend(sendParam, false);
    oft.send{ value: fee.nativeFee }(sendParam, fee, payable(msg.sender));
}

Управління supply між чейнами

Це найскладніший аспект. Потрібен моніторинг:

Метрика Як відстежувати
Supply per chain Виклик totalSupply() на кожному деплої
Circulating supply Сума всіх totalSupply() мінус locked в bridge контрактах
Bridge flow Івенти OFTSent / OFTReceived
Pending messages LayerZero Scan API

Для Lock & Mint моделі (якщо використовуєте кастомний bridge) потрібен invariant check: sum(wrapped supplies) <= locked_on_home_chain. Моніторинг через Tenderly або власний скрипт з алертингом.

Безпека: DVN, rate limiting, pause

Налаштуйте 2 з N верифікаторів для підтвердження повідомлення. Мінімальна безпечна конфігурація:

UlnConfig memory ulnConfig = UlnConfig({
    confirmations: 15,
    requiredDVNCount: 2,
    optionalDVNCount: 0,
    optionalDVNThreshold: 0,
    requiredDVNs: [LAYERZERO_DVN, GOOGLE_CLOUD_DVN],
    optionalDVNs: new address[](0)
});

Для production ми використовуємо LayerZero DVN + один незалежний DVN (Google Cloud, Nethermind, p2p.org).

Навіть з надійним bridge — додайте rate limiting на рівні токен-контракту як останню лінію захисту:

mapping(uint256 => uint256) public dailyBridgeVolume;
uint256 public constant MAX_DAILY_BRIDGE = 1_000_000e18; // 1M токенів/день

modifier withRateLimit(uint256 amount) {
    uint256 today = block.timestamp / 1 days;
    require(
        dailyBridgeVolume[today] + amount <= MAX_DAILY_BRIDGE,
        "Daily bridge limit exceeded"
    );
    dailyBridgeVolume[today] += amount;
    _;
}

Якщо bridge зламано — rate limit дасть час на реакцію, обмеживши збиток.

Контракт повинен мати pause функцію, керовану мультисигом з коротким timelock. При виявленні аномальної bridge-активності — миттєва зупинка передач. Ми гарантуємо, що всі контракти проходять аудит та stress-тестування.

Процес роботи від ідеї до деплою

  1. Аналіз вимог: обираємо чейни, модель, tokenomics.
  2. Проектування архітектури: смарт-контракти, bridge, governance.
  3. Розробка: пишемо код, використовуємо Foundry/Hardhat, підключаємо LayerZero.
  4. Тестування: unit-тести, fork-тести на всіх чейнах, fuzzing.
  5. Аудит безпеки: внутрішній + зовнішній (2–3 фірми).
  6. Деплой: послідовний деплой, верифікація, налаштування моніторингу.

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

  • Повний код смарт-контрактів (OFT або кастомний bridge).
  • Скрипти деплою та конфігурації для всіх чейнів.
  • Налаштування LayerZero Endpoint та DVN.
  • Інтеграція rate limiting та pause.
  • Технічна документація та інструкція з експлуатації.
  • Підтримка після деплою (2 тижні інцидент-менеджменту).

Терміни та вартість

Терміни — від 1 до 4 тижнів залежно від кількості чейнів та складності. Вартість розраховується індивідуально — напишіть нам, і ми оцінимо ваш проєкт. Замовте консультацію, щоб обговорити деталі.

Типові помилки та як їх уникнути

  • Неправильна модель: обирати Lock&Mint без оцінки ризиків bridge. Використовуйте безпечну альтернативу — OFT з DVN.
  • Відсутність rate limiting: без нього збиток від bridge-атаки необмежений.
  • Один верифікатор: покладатися тільки на LayerZero DVN. Додайте незалежний.
  • Ігнорування gas на destination: не налаштований executorLzReceiveOption призводить до збоїв бриджингу.
  • Немає моніторингу: bridge-потоки повинні відстежуватися в реальному часі.

Отримайте консультацію по вашому проєкту — наші інженери з 10+ річним досвідом допоможуть обрати оптимальну архітектуру та уникнути типових помилок.

Розробка токенів на Ethereum: ERC-20, токеноміка, вестинг

Ми маємо 5+ років досвіду в розробці токенів на Ethereum та сумісних L2. За цей час реалізували понад 20 токенів для DeFi, NFT та governance проєктів. Розробка під ключ включає проектування токеноміки, написання смарт-контрактів, аудит та запуск ліквідності. Гарантуємо прозорість умов і супровід після запуску. Напишіть нам — отримайте технічний аналіз вашого проєкту за 1 день.

«ERC-20 — це просто» — фраза, після якої починаються проблеми. Базовий transfer написати не складно. Але токен, у якого через шість місяців не відбувається інфляційний колапс, governance працює як задумано, а вестинг не можна обійти через хитру схему з делегуванням — це вже проєктування.

Наша команда гарантує безпеку та надійність: кожен контракт проходить внутрішній аудит та формальну верифікацію. Ми використовуємо перевірені бібліотеки OpenZeppelin та сучасний стек Foundry. Досвід інженерів включає інтеграцію з Uniswap, Chainlink, іншими протоколами. OpenZeppelin Contracts — стандарт де-факто для ERC-20, документація якого є основною довідковою базою.

ERC-20: що під капотом

Стандарт ERC-20 — дев'ять функцій. Складність починається з розширень.

ERC-20Permit (EIP-2612) — gasless approve через підпис. Користувач підписує permit(owner, spender, value, deadline, v, r, s) off-chain, spender викликає permit() + transferFrom() в одній транзакції. Це прибирає окремий approve step. Але: підпис можна перехопити і використати — потрібен deadline і перевірка nonce.

ERC-20Votes (EIP-5805) — snapshot балансів для governance. Checkpoint-система зберігає історію балансів за номером блоку. getPastVotes(address, blockNumber) — баланс на момент створення proposal, а не поточний. Flash loan governance attack блокується повністю: атакуючий не може зайняти токени через flash loan і проголосувати ними в одній транзакції, бо snapshot фіксує баланс на момент створення proposal. ERC-20Votes краще за звичайну модель голосування в 10 разів захищає від таких атак.

Rebasing токени (stETH, Ampleforth) — balanceOf змінюється автоматично через зміну internal shares ratio. Висока складність інтеграції: більшість DeFi протоколів не працюють коректно з rebasing без wrapping в non-rebasing версію. Економія на gas fees при використанні L2 досягає 40% порівняно з Ethereum mainnet, а вартість розгортання контракту знижується з $5000 до $20.

Fee-on-transfer токени — при кожному transfer знімається відсоток. Ламають AMM розрахунки: пул отримує менше, ніж очікував. Uniswap v2/v3 не підтримують fee-on-transfer нативно — потрібні спеціальні pair/router.

Tokenomics: де математика перетворюється на економіку

Токеноміка — це не таблиця в Excel з сумою 100%. Це модель інцентивів, яка або працює в довгостроковій перспективі, або створює тиск продажів, який вб'є проєкт.

Emission schedule та інфляція

Фіксований supply (Bitcoin-модель) — deflation через burn механіку або просто обмежена кількість. Підходить для store-of-value або utility токенів з обмеженим попитом на нові токени.

Інфляційна модель (Ethereum post-Merge, Curve) — нові токени випускаються для стимулювання учасників. Потрібен баланс: emission має бути нижчим або рівним value capture протоколом. Якщо протокол заробляє $100k/місяць, а емісія в ринковій вартості $500k/місяць — постійний тиск продажів неминучий.

Halving schedules (Bitcoin-style) — зменшення emission з часом. Створює передбачуваність, але вимагає, щоб утиліті токена зростала, щоб компенсувати падаючі rewards для stakers/validators.

Supply distribution

Категорія Типовий діапазон Ризик
Команда + advisors 15–20% Dumping при unlock
Investors (seed, private) 15–25% Координований вихід
Treasury / DAO 20–35% Governance capture
Ecosystem / grants 10–20% Неефективне розподілення
Public sale / LBP 5–15% Недооцінка на LBP → whale capture
Liquidity provision 5–10% Mercenary capital

Немає універсальної формули. Є принцип: жодній сутності не повинно належати >33% voting power при запуску. Інакше governance — фікція.

Liquidity Bootstrapping — механіка запуску ліквідності

Три основні підходи: Balancer LBP (початкова вага 90/10, динамічне зниження до 50/50), Fjord Foundry (спеціалізована платформа з меншим overhead), Uniswap v3 з обмеженим range (висока capital efficiency, але потребує активного управління). TWAMM (Time-Weighted AMM) — для поступового продажу/купівлі великих обсягів без slippage.

Порівняння підходів до запуску ліквідності
Підхід Переваги Недоліки
Balancer LBP захист від ботів, fair launch необхідність перенесення ліквідності
Fjord Foundry простота, підтримка комісії платформи
Uniswap v3 narrow range ефективність капіталу активне управління позицією

Vesting та Governance

Vesting контракти: деталі мають значення

Linear vesting з cliff — стандарт для команди та інвесторів. cliff — період після TGE, протягом якого нічого не доступно. Після cliff — лінійний unlock до duration.

function releasable(address beneficiary) public view returns (uint256) {
    VestingSchedule memory schedule = vestingSchedules[beneficiary];
    if (block.timestamp < schedule.cliff) return 0;

    uint256 elapsed = block.timestamp - schedule.cliff;
    uint256 vestingDuration = schedule.duration - (schedule.cliff - schedule.start);
    uint256 vested = schedule.totalAmount * elapsed / vestingDuration;

    return vested - schedule.released;
}

Типові помилки при реалізації:

  • Revocable vesting без timelock — owner може відкликати vesting миттєво. Рішення: revocation через multisig + governance vote.
  • Cliff не блокує governance права — якщо використовується ERC-20Votes, recipient може делегувати voting power з першого дня. Потрібно явно розділити voting power і claim logic.
  • Відсутність emergency pause — Pausable + timelock на unpause.

Як налаштувати vesting контракт покроково:

  1. Визначити параметри vesting (cliff, duration, totalAmount).
  2. Розгорнути контракт TokenVesting (наприклад, OpenZeppelin).
  3. Призначити beneficiary та підтвердити розклад.
  4. Налаштувати emergency pause та revocation через multisig.
  5. Протестувати сценарії за допомогою Foundry fuzz тестів.

Governance токени та voting механіки

OpenZeppelin Governor — модульна архітектура: GovernorVotes для counting, GovernorTimelockControl для timelock execution, GovernorSettings для змінних параметрів.

Quorum — мінімальний відсоток supply для валідності голосування. Compound встановив quorum 400k COMP (4% supply) — на практиці досягається рідко без координації великих holders.

Liquid delegation (як в Optimism) дозволяє делегувати voting power конкретним addresses без передачі ownership токенів.

Як обрати правильний тип токена для вашого проєкту?

Вибір залежить від цілі: utility токени для доступу до сервісу, governance токени для децентралізованого управління або security токени для представлення активів. Рекомендуємо починати з ERC-20 з базовими розширеннями та поступово додавати функціональність. Ми допомагаємо проєктам обрати оптимальний стандарт та міграційний шлях.

Які ризики виникають при використанні rebasing токенів?

Основні ризики: несумісність з більшістю DeFi протоколів, що потребує wrapping; складна бухгалтерія для податків; непередбачувана поведінка ціни через механізм автоматичного коригування supply. Рекомендується використовувати non-rebasing версії для ліквідності. Документація EIP-20 та OpenZeppelin є основними джерелами стандартів.

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

  • Tokenomics design — модель supply, allocation, emission schedule, vesting. Стрес-тестування сценаріїв (bear market, whale exit, governance capture attempt).
  • Контракт розробка — ERC-20 + extensions, vesting, governance. Foundry fuzz тести на vesting calculations, governance thresholds.
  • Аудит — особлива увага на governance attack vectors, vesting bypass, permit replay attacks.
  • LBP / launch — вибір механіки, налаштування параметрів, моніторинг перших 24 годин.
  • Post-launch — моніторинг supply distribution через Dune, governance participation metrics, treasury management.

Стек: Solidity 0.8.x, OpenZeppelin Contracts 5.x, Foundry, Gnosis Safe, OpenZeppelin Defender, Dune Analytics.

Строки (залежать від складності):

  • ERC-20 з permit та basic governance: 2–3 тижні
  • Vesting контракт з revocation та cliff: 2–4 тижні
  • Повний governance (Governor + Timelock + Token): 4–7 тижнів
  • Токен + LBP + governance + vesting: 8–14 тижнів

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

  • Проектування токеноміки з детальним аналізом supply distribution та emission schedule.
  • Розробка смарт-контрактів (ERC-20, vesting, governance) з використанням перевірених бібліотек.
  • Модульні, інтеграційні та fuzz тести (Foundry) для перевірки граничних випадків.
  • Внутрішній аудит коду з використанням Slither та Mythril.
  • Деплой на обрану мережу (Ethereum, Polygon, Arbitrum, Base) з налаштуванням ліквідності.
  • Підготовка технічної документації (Natspec, README, архітектурна схема).
  • Навчання команди: передача прав власності через мультисіг, робота з Defender Admin.
  • Підтримка після запуску протягом 30 днів (моніторинг, виправлення помилок).

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