Разработка 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
    1220
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    921
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1148
  • 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), криптографические гарантии вместо экономических. Минусы: Complexity — ZK proof generation требует специализированных схем. Не все EVM opcode'ы эффективно доказуемы.

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

  • Polygon CDK (Chain Development Kit) — для zkEVM-compatible цепей
  • zkSync ZK Stack — на базе zkSync Era infrastructure
  • 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 — доверенный, централизованный. Это acknowledge'd tradeoff: удобство в обмен на централизацию.

Для продакшн-проектов — рассмотрите 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 мес

Бюджет на инфраструктуру (monthly):

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

Собственный L2 — это не разовая работа, это операционная ответственность. Кто-то должен следить за нодами, обновлять клиенты, мониторить мост и реагировать на инциденты 24/7.