Разработка решений на модульном стеке (execution + DA + settlement)

Разработка системы на модульном стеке (execution + DA + settlement) Монолитный блокчейн делает всё сам: исполняет транзакции, обеспечивает доступность данных, финализирует состояние. Модульный подход разбивает эти функции между специализированными слоями. Результат — экосистема, где можно выбират

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1003
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1269
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    717
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1008

Разработка системы на модульном стеке (execution + DA + settlement)

Монолитный блокчейн делает всё сам: исполняет транзакции, обеспечивает доступность данных, финализирует состояние. Модульный подход разбивает эти функции между специализированными слоями. Результат — экосистема, где можно выбирать компоненты как модули: Celestia для DA, Ethereum для settlement, OP Stack или Arbitrum Orbit для execution. Это не теория — так построены десятки mainnet L2 и L3. Мы предлагаем разработку таких решений под ключ. Свяжитесь с нами для консультации — оценим ваш проект и поможем выбрать оптимальный стек.

Типичный запрос: «хотим свой appchain с низкими комиссиями и кастомной логикой, но с безопасностью Ethereum». Это правильно сформулированная задача, и модульный стек — правильный ответ. Наша команда имеет опыт в блокчейн-разработке и запущенных mainnet-проектах.

Почему модульный стек дешевле монолитного?

Главный аргумент — экономия на layer DA. Использование Celestia вместо Ethereum для публикации batch-данных снижает стоимость на 90–95%. Для high-volume rollup это экономит тысячи долларов в месяц. Celestia дешевле Ethereum в 20 раз при сопоставимой безопасности для большинства сценариев. Согласно официальной документации Celestia, Data Availability Sampling позволяет лёгким нодам проверять доступность данных без полной загрузки блоков.

Какие слои входят в модульный стек?

Execution Layer

Исполняет транзакции, поддерживает состояние. Это ваш chain — со своими правилами, gas token, precompiles.

OP Stack (Optimism, Base, Zora) — самый зрелый фреймворк для Optimistic Rollup-based L2/L3. EVM-эквивалентность. op-geth + op-node + op-batcher + op-proposer.

Arbitrum Orbit — Arbitrum-based L2/L3. Поддерживает Stylus (WASM смарт-контракты на Rust/C++). Более гибкая кастомизация gas и permission models.

Polygon CDK — ZK-based chain development kit. zkEVM под капотом. Более сложен в эксплуатации, но ZK finality вместо fraud window.

Sovereign rollup через Rollkit — execution layer с любым execution environment, settlement в любой цепи (или без settlement). Максимальная гибкость, минимальная зрелость.

Data Availability Layer

Блоки должны быть доступны для скачивания — иначе fraud proofs и state reconstruction невозможны. DA layer хранит данные транзакций (calldata или blobs).

Ethereum L1 (EIP-4844 blobs) — максимальная security, наивысшая стоимость. После EIP-4844: ~3–6 blobs per block, каждый blob ~128KB, стоимость blob gas отдельна от execution gas. Blobs удаляются через ~18 дней, но commitment (KZG) остаётся навсегда.

Celestia — специализированный DA layer. Data availability sampling (DAS): light nodes проверяют доступность через random sampling, не скачивая весь блок. Стоимость на порядки ниже Ethereum blobs при сопоставимых security guarantees для большинства use cases.

EigenDA — DA layer поверх Ethereum через EigenLayer restaking. Экономическая безопасность от рестейкнутого ETH. Значительно выше throughput чем Ethereum L1 при более высоких security гарантиях (на сегодня).

Avail — DA layer с data availability sampling, forkless upgrades. Хорошая альтернатива Celestia.

Settlement Layer

Финализация: определяет, что является каноническим состоянием rollup. Обрабатывает withdrawals, resolves disputes.

Для большинства проектов — Ethereum mainnet через L1 bridge contract. Альтернатива для L3 — использовать L2 как settlement layer (например, Arbitrum One как settlement для Orbit chain).

Как интегрировать Celestia DA в OP Stack?

Покажу конкретную конфигурацию, которую используют в production. Пошаговая инструкция:

  1. Разверните Celestia light node и получите auth token.
  2. Зарезервируйте уникальный namespace (29 байт).
  3. Реализуйте AltDA provider, реализующий интерфейсы GetInput и SetInput.
  4. Настройте op-batcher на использование Celestia как DA layer.
  5. Деплойте на Ethereum L1 контракты OptimismPortal и L2OutputOracle.

AltDA provider для Celestia

// Реализация AltDA provider для Celestia type CelestiaAltDA struct { da *CelestiaDA } func (c *CelestiaAltDA) GetInput(ctx context.Context, commitment []byte) ([]byte, error) { height, err := decodeCommitment(commitment) if err != nil { return nil, err } return c.da.Retrieve(ctx, height) } func (c *CelestiaAltDA) SetInput(ctx context.Context, data []byte) ([]byte, error) { height, err := c.da.Submit(ctx, data) if err != nil { return nil, err } return encodeCommitment(height), nil } 

Конфигурация op-batcher для Celestia

[da] type = "celestia" rpc = "http://celestia-light-node:26658" auth_token = "${CELESTIA_AUTH_TOKEN}" namespace = "0x0000000000000000000000000000000000yournamespace" 

L1 Settlement контракты

На Ethereum деплоятся два контракта. OptimismPortal — входная/выходная точка для cross-domain сообщений и withdrawals. L2OutputOracle — хранит state roots предложенные proposer'ом.

contract L2OutputOracle { struct OutputProposal { bytes32 outputRoot; uint128 timestamp; uint128 l2BlockNumber; } OutputProposal[] public l2Outputs; address public proposer; uint256 public constant FINALIZATION_PERIOD = 7 days; function proposeL2Output( bytes32 _outputRoot, uint256 _l2BlockNumber, bytes32 _l1BlockHash, uint256 _l1BlockNumber ) external payable { require(msg.sender == proposer, "Not proposer"); require(blockhash(_l1BlockNumber) == _l1BlockHash, "Bad L1 block"); l2Outputs.push(OutputProposal({ outputRoot: _outputRoot, timestamp: uint128(block.timestamp), l2BlockNumber: uint128(_l2BlockNumber) })); } } 

Как кастомизировать execution layer?

Custom precompiles

Precompiles — предкомпилированные контракты по фиксированным адресам с нативной реализацией. Например, добавить BLS12-381 операции или кастомный хэш-алгоритм:

var CustomPrecompiles = map[common.Address]vm.PrecompiledContract{ common.HexToAddress("0x0000000000000000000000000000000000000100"): &blsG1Add{}, common.HexToAddress("0x0000000000000000000000000000000000000101"): &customHashFunction{}, } type blsG1Add struct{} func (c *blsG1Add) RequiredGas(input []byte) uint64 { return 500 } func (c *blsG1Add) Run(input []byte) ([]byte, error) { if len(input) != 128 { return nil, errors.New("invalid input length") } p1 := new(bls12381.G1Affine) p2 := new(bls12381.G1Affine) p1.Unmarshal(input[:64]) p2.Unmarshal(input[64:]) result := new(bls12381.G1Affine).Add(p1, p2) return result.Marshal(), nil } 

Gas token кастомизация

OP Stack поддерживает Custom Gas Token — native gas token, отличный от ETH. Это позволяет использовать ваш ERC-20 токен как gas. Ограничение: custom gas token должен быть задеплоен на L1, иметь стандартный ERC-20 интерфейс и не иметь transfer fees (rebasing/fee-on-transfer токены не поддерживаются).

Fee структура и sequencer revenue

User Transaction Fee = (base_fee + priority_fee) * gas_used + L1 data fee Sequencer Revenue = collected fees - DA costs - L1 costs 

При использовании Celestia вместо Ethereum для DA, L1 data fee снижается на 90–95% для большинства транзакций.

Что входит в работу

  • Анализ требований и выбор стека (OP Stack, Celestia, Ethereum) с обоснованием.
  • Разработка и деплой core контрактов (bridge, L2OutputOracle, OptimismPortal).
  • Интеграция кастомного DA provider для Celestia.
  • Настройка execution layer (кастомные precompiles, gas token).
  • Развёртывание тестнета, написание тестов и стресс-тестирование.
  • Аудит смарт-контрактов (bridge, fault proof) и исправление уязвимостей.
  • Помощь в запуске mainnet, мониторинг и поддержка после запуска.
  • Документация по архитектуре, деплою и эксплуатации.

Сравнение DA слоёв

Детальное сравнение
Параметр Ethereum L1 (blobs) Celestia EigenDA
Security Максимальная Высокая (DAS) Экономическая (restaking)
Стоимость Высокая Низкая Средняя
Throughput ~0.5 MB/s ~1 MB/s ~10 MB/s
Время финализации ~15 мин ~30 сек ~10 сек
Зрелость Production Production Beta

Декомпозиция по срокам

Фаза Содержание Срок
Design Выбор стека, namespace, токеномика, bridge design 2–3 нед
Core setup op-stack deployment, L1 contracts, genesis 3–4 нед
DA integration Celestia/EigenDA connector, batcher config 2–3 нед
Testnet Публичный тестнет, bridge testing, stress test 3–4 нед
Security Аудит bridge контрактов, fault proof testing 4–6 нед
Mainnet Деплой, sequencer ops, monitoring 2–3 нед

Критический путь — аудит bridge контрактов. Bridge — это где живут реальные деньги пользователей, и именно здесь большинство L2 находило критические уязвимости. Экономить на аудите bridge нельзя.

Итого: 16–23 недели от старта до mainnet. Команда: 2–3 backend инженера с опытом Go, 1 Solidity разработчик, DevOps/инфраструктурный инженер.

Готовы обсудить ваш проект и предложить оптимальное решение. Получите консультацию — свяжитесь с нами.