Розробка Layer 2 рішення

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

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

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

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

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

Розробка Layer 2 рішення

"Нам потрібне власне L2" — фраза, яку я чую все частіше. Іноді це обґрунтовано: проект з тисячами транзакцій за секунду, який не хоче платити Ethereum gas та не хоче залежати від чужої інфраструктури. Частіше — це надлишково, та достатньо існуючого L2. Перш ніж будувати власне L2, потрібно чесно відповісти: вам потрібно application-specific rollup чи ви просто хочете дешеві транзакції? У другому випадку — розгортання на Arbitrum або OP Stack займе дні, а не місяці.

Типологія L2: що саме будуємо

Optimistic Rollup

Транзакції виконуються off-chain, результат (state root) публікується в L1. Передбачається, що всім честь — якщо хтось знайшов мошенництво, він подає fraud proof протягом challenge window (7 днів для Arbitrum, 7 днів для OP Stack).

Плюси: EVM-еквівалентність або близькість до неї, зрілі фреймворки (OP Stack, Arbitrum Orbit). Мінуси: 7-денний withdrawal period для виводу на L1. Нативно вирішується через liquidity providers (мости типу Hop, Across).

Готові фреймворки:

  • OP Stack — використовується Base, Mode, Zora, десятки інших. Відкритий код, Superchain концепція від Optimism.
  • Arbitrum Orbit — для створення L3 поверх Arbitrum One/Nova.

ZK Rollup

Кожен батч транзакцій супроводжується zero-knowledge proof — математичним доказом коректності. L1 верифікує proof, а не виконує транзакції заново.

Плюси: Миттєвий withdrawal finality (немає challenge window), криптографічні гарантії замість економічних. Мінуси: Складність — ZK proof generation вимагає спеціалізованих схем. Не всі EVM opcode'и ефективно доказувані.

Готові фреймворки:

  • Polygon CDK (Chain Development Kit) — для zkEVM-compatible цепей
  • zkSync ZK Stack — на базі zkSync Era інфраструктури
  • Scroll SDK — якщо потрібна максимальна EVM-еквівалентність

Validium

Як ZK Rollup, але дані зберігаються off-chain (Data Availability Committee або IPFS), не в L1. Дешевше, але слабші гарантії доступності даних.

Application-specific chain (не rollup)

Іноді потрібна не L2 як rollup, а окрема цепь з власним консенсусом. Cosmos SDK для цього — стандартний вибір: Inter-Blockchain Communication (IBC) для міжсітьових переводів, повний контроль над governance та gas token.

Розробка на OP Stack: детальний розбір

OP Stack — найбільш зрілий вибір для EVM-сумісного Optimistic Rollup. Розглянемо ключові компоненти.

Компоненти системи

L1 (Ethereum)
├── OptimismPortal.sol      — депозиты L1→L2, withdrawals L2→L1
├── L2OutputOracle.sol      — зберігає L2 state roots
├── DisputeGameFactory.sol  — fault proof games (Cannon)
└── SystemConfig.sol        — параметри цепи

L2 (OP Stack chain)
├── op-node              — consensus (читає L1, керує sequencer)
├── op-geth              — execution (форк Geth)
├── op-batcher           — публікує L2 транзакції в L1 calldata/blobs
└── op-proposer          — публікує L2 output roots в L1

Розгортання OP Stack цепи

# Клонування Optimism monorepo
git clone https://github.com/ethereum-optimism/optimism.git
cd optimism
git checkout op-contracts/v1.6.0

# Встановлення залежностей
pnpm install
make op-node op-batcher op-proposer

Конфігурація цепи через deploy-config.json:

{
  "l1ChainID": 1,
  "l2ChainID": 42069,
  "l2BlockTime": 2,
  "l1BlockTime": 12,
  "maxSequencerDrift": 600,
  "sequencerWindowSize": 3600,
  "channelTimeout": 300,
  "p2pSequencerAddress": "0x...",
  "batchInboxAddress": "0xff00000000000000000000000000000000042069",
  "batchSenderAddress": "0x...",
  "l2OutputOracleSubmissionInterval": 120,
  "l2OutputOracleStartingBlockNumber": 0,
  "l2OutputOracleStartingTimestamp": ...,
  "l2OutputOracleProposer": "0x...",
  "l2OutputOracleChallenger": "0x...",
  "finalizationPeriodSeconds": 604800,
  "proxyAdminOwner": "0x...",
  "baseFeeVaultRecipient": "0x...",
  "l1FeeVaultRecipient": "0x...",
  "sequencerFeeVaultRecipient": "0x...",
  "enableGovernance": false,
  "governanceTokenSymbol": "OP",
  "governanceTokenName": "Optimism",
  "eip1559Denominator": 50,
  "eip1559Elasticity": 6,
  "l2GenesisBlockGasLimit": "0x2faf080",
  "l2GenesisBlockBaseFeePerGas": "0x3B9ACA00"
}

Розгортання L1 контрактів:

cd packages/contracts-bedrock
forge script scripts/deploy/Deploy.s.sol:Deploy \
  --rpc-url $L1_RPC_URL \
  --broadcast \
  --private-key $DEPLOYER_PRIVATE_KEY \
  --slow

Data Availability: calldata vs EIP-4844 blobs

До EIP-4844 (Dencun upgrade, березень 2024) L2 публікував дані в L1 calldata — дорого (~$1–5 за batch). Після Dencun — через blobs (EIP-4844): спеціальний тип даних в блоці з окремим ринком газу. Blobs удешевлюють публікацію даних в ~10–100x.

// op-batcher використовує blobs автоматично якщо L1 їх підтримує
// Конфіг в op-batcher:
--data-availability-type blobs  // або 'calldata' для принудового fallback
--max-channel-duration 1800     // максимум 1800 блоків L2 в одному каналі

Для високонагруженого L2: якщо blob простору не вистачає (blob gas market перегружен) — настройте fallback на EigenDA або Celestia як зовнішний DA layer. Це validium-підхід, але з кращими гарантіями ніж pure off-chain.

Sequencer: централізація та її наслідки

Класичний OP Stack має єдиний sequencer — довірений, централізований. Це acknowledged tradeoff: зручність в обмін на централізацію.

Для production-проектів — розглядайте shared sequencer варіанти:

  • Espresso Systems — decentralized sequencer для OP Stack цепей
  • Based rollup — sequencer-free, блоки пропонуються L1 validators напрямки

Або мінімально: sequencer за multisig з моніторингом та автоматичним force-include для користувачів, якого sequencer ігнорує.

Мост: стандарт та безпека

L1StandardBridge та L2StandardBridge — вбудовані мості OP Stack. Для кастомних токенів:

// Кастомний ERC-20 з підтримкою стандартного моста
contract MyL2Token is OptimismMintableERC20 {
    constructor(
        address _bridge,
        address _remoteToken
    ) OptimismMintableERC20(_bridge, _remoteToken, "MyToken", "MTK") {}
}

Ніколи не деплойте кастомний мост без ретельного аудиту. Більшість громадких взломів у Web3 — саме мості: Ronin ($625M), Wormhole ($320M), Nomad ($190M). Використовуйте стандартний мост, додавайте кастомну логіку тільки коли абсолютно необхідно.

Sequencer economics

L2 мережа заробляє:

  • L2 gas fees — користувачі платять за виконання на L2
  • L1 data cost — sequencer витрачає на публікацію даних в L1

Маржа = L2 fees − L1 publishing cost. EIP-4844 blobs різко знизили L1 cost, що дозволяє встановлювати low gas price на L2 та всі рівно бути прибутковими.

L2 Transaction Fee = L2 Base Fee × Gas Used + L1 Data Fee
L1 Data Fee = (tx data size × 16) × L1 Base Fee × overhead_scalar

Калькулятор для вашої цепи: l2fees.info — корисна референсна точка.

ZK шлях: zkSync ZK Stack

Якщо вибрали ZK Rollup — ZK Stack від Matter Labs:

# ZK Stack CLI
curl -L https://raw.githubusercontent.com/matter-labs/zksync-era/main/zkstack_cli/zkstackup/install | bash
zkstackup

# Створення нової цепи
zkstack ecosystem create
zkstack chain create --chain-name mychain --chain-id 12345

ZK Stack використовує Boojum — proof system на основі PLONK з custom gates. Proof generation займає хвилини та потребує GPU для production скоростей (~RTX 4090 або A100).

Реальне час proof generation:

  • CPU (32 cores): ~15–30 хвилин на батч
  • RTX 4090: ~2–5 хвилин
  • A100: ~1–2 хвилини

Для проекту з частими транзакціями — GPU prover обов'язковий.

Часові та фінансові оцінки

Фаза OP Stack ZK Stack Cosmos SDK
Розгортання та настройка 1–2 тижні 2–4 тижні 4–8 тижнів
Bridge + explorer 1–2 тижні 2–3 тижні 2–4 тижні
Аудит інфраструктури 2–4 тижні 4–8 тижнів 4–8 тижнів
Production-ready 1–2 мес 2–4 мес 3–6 мес

Бюджет на інфраструктуру (щомісячно):

  • L1 gas для sequencer: $500–$5000/місяць (залежить від активності)
  • RPC провайдери (L1 та L2): $500–$2000/місяць
  • Серверів (sequencer, nodes): $500–$3000/місяць
  • Block explorer (Blockscout self-hosted): $200–$500/місяць

Власне L2 — це не разова робота, це операційна відповідальність. Хтось повинен слідкувати за нодами, оновлювати клієнти, моніторити мост та реагувати на інциденти 24/7.