Интеграция с EigenDA: децентрализованный Data Availability для rollup

Rollup сталкиваются с дилеммой: хранить все данные на Ethereum дорого, а off-chain DA решения требуют доверия. EigenDA решает эту проблему с помощью математического доказательства доступности и экономических гарантий EigenLayer. По сравнению с Ethereum blobs, EigenDA обеспечивает в 10 раз больший th

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

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

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

  • 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

Rollup сталкиваются с дилеммой: хранить все данные на Ethereum дорого, а off-chain DA решения требуют доверия. EigenDA решает эту проблему с помощью математического доказательства доступности и экономических гарантий EigenLayer. По сравнению с Ethereum blobs, EigenDA обеспечивает в 10 раз больший throughput (10+ MB/s) при значительно меньшей стоимости. Экономия на комиссиях достигает 90% — на одном из наших проектов экономия превысила десятки тысяч долларов в месяц при throughput 5 MB/s.

Наша команда имеет 10+ успешных интеграций DA слоёв для rollup на Ethereum, Arbitrum и OP Stack. EigenDA использует технологию EigenLayer restaking для обеспечения безопасности.

Как EigenDA решает проблему доступности данных?

EigenDA использует Erasure coding и Data Availability Sampling (DAS). Данные размером D кодируются в M chunks (M > D) с помощью Reed-Solomon кода. Любые D из M chunks достаточно для восстановления оригинала. Если 50% операторов недоступны — данные всё равно восстановимы.

Data Availability Sampling (DAS) позволяет light client верифицировать доступность данных, скачав только небольшое случайное подмножество chunks. Если скачать 30 случайных chunks и все доступны, с вероятностью >99.9% все данные доступны (при 50% erasure coding).

Blob (данные rollup) ↓ Reed-Solomon encoding Chunks [c0, c1, c2, ..., cn] ↓ KZG polynomial commitments Commitment (короткое доказательство данных) ↓ Dispersal к операторам Операторы хранят chunks + отвечают на sampling запросы 

Как устроена архитектура EigenDA?

EigenDA состоит из трёх компонентов:

  • Операторы (Operators) — нодовладельцы, которые restaked ETH через EigenLayer и предоставляют хранение и bandwidth. Более 100 операторов уже в сети.
  • Disperser — сервис (пока централизованный у EigenLabs, roadmap на децентрализацию), который принимает данные от rollup, делит их на chunks через erasure coding, распределяет по операторам, собирает подписи.
  • Верификатор on-chain — смарт-контракт на Ethereum, который верифицирует, что quorum операторов подписал attestation о получении данных.

Сравнение EigenDA с альтернативами

Параметр Ethereum blobs (EIP-4844) EigenDA Celestia Avail
Throughput ~0.75 MB/блок (6 blobs) 10+ MB/s (масштабируется) ~1-2 MB/блок ~2 MB/блок
Стоимость Зависит от blob рынка Значительно дешевле Дешевле ETH blobs Дешевле ETH blobs
Модель доверия Ethereum validator set EigenLayer restakers Celestia validators Avail validators
Latency ~12 сек (1 блок) ~10-12 сек ~15 сек ~20 сек
Зрелость Production Mainnet Production Beta
EVM интеграция Нативная Через proxy/adapter Через adapters Через adapters

Как выполнить интеграцию EigenDA?

  1. Анализ архитектуры — определяем, какой тип интеграции подходит: через готовый proxy (OP Stack) или кастомный.
  2. Развёртывание инфраструктуры — настраиваем EigenDA Disperser, контракты и подключаемся к EigenLayer. Тестируем на Holesky.
  3. Интеграция dispersal — имплементируем отправку данных через EigenDA API с fallback на Ethereum calldata. Реализуем on-chain верификацию.
  4. Нагрузочное тестирование — проверяем throughput, latency и устойчивость к отказам. Используем Tenderly для симуляции.
  5. Аудит и деплой — проводим аудит контрактов (Slither, Mythril) и переносим конфигурацию в mainnet. Настраиваем мониторинг.

Пример кода dispersal и верификации

Rollup sequencer отправляет данные через EigenDA Disperser API:

func disperseBlob(data []byte) (*disperser.BlobInfo, error) { conn, err := grpc.Dial("disperser-holesky.eigenda.xyz:443", grpc.WithTransportCredentials(...)) if err != nil { return nil, err } defer conn.Close() client := disperser.NewDisperserClient(conn) reply, err := client.DisperseBlob(context.Background(), &disperser.DisperseBlobRequest{ Data: data, CustomQuorumNumbers: []uint32{}, AccountId: accountId, }) if err != nil { return nil, err } for { statusReply, _ := client.GetBlobStatus(context.Background(), &disperser.BlobStatusRequest{ RequestId: reply.RequestId, }) if statusReply.Status == disperser.BlobStatus_CONFIRMED { return statusReply.Info, nil } time.Sleep(2 * time.Second) } } func postBatchWithFallback(batchData []byte) error { blobInfo, err := disperseToEigenDA(batchData) if err == nil { return postToEthereumWithEigenDARef(blobInfo) } log.Warn("EigenDA dispersal failed, falling back to calldata", "err", err) return postToEthereumCalldata(batchData) } 

После confirmation serialized BlobInfo постится в Ethereum в calldata.

On-chain верификация

interface IEigenDAServiceManager { function confirmBatch(BatchHeader calldata batchHeader, OperatorStakesAndSignature calldata operatorStakesAndSignature) external; function verifyBlob(BlobHeader calldata blobHeader, BlobVerificationProof calldata blobVerificationProof) external view; } contract RollupWithEigenDA { IEigenDAServiceManager public eigenDA; function submitBatch(bytes calldata batchData, BlobHeader calldata eigenDABlobHeader, BlobVerificationProof calldata eigenDAProof) external { eigenDA.verifyBlob(eigenDABlobHeader, eigenDAProof); bytes32 batchRoot = keccak256(batchData); _submitBatchRoot(batchRoot); } } 

Интеграция с OP Stack через EigenDA Proxy

Для rollup на базе OP Stack есть готовый EigenDA Proxy — sidecar сервис, реализующий OP Stack alt-DA интерфейс:

eigenda-proxy: image: ghcr.io/layr-labs/eigenda-proxy:latest environment: - EIGENDA_PROXY_ADDR=0.0.0.0 - EIGENDA_PROXY_PORT=4242 - EIGENDA_PROXY_EIGENDA_DISPERSER_RPC=disperser-holesky.eigenda.xyz:443 - EIGENDA_PROXY_G1_PATH=/data/g1.point - EIGENDA_PROXY_G2_POWER_OF_TAU_PATH=/data/g2.point.powerOf2 volumes: - ./data:/data 

OP Stack batch poster конфигурируется с --altda.da-service=true и указывает на proxy. Всё остальное прозрачно.

Что входит в интеграцию?

Этап Что делаем Результат
Аналитика Изучаем архитектуру вашего rollup, выбираем схему интеграции (proxy / кастомный) Технический план
Настройка инстанса EigenDA Деплой контрактов, настройка quorum, подключение к EigenLayer Рабочая среда на testnet
Интеграция софта Имплементация dispersal логики, адаптация batch poster Код, протестированный на Holesky
Тестирование и аудит Нагрузочное тестирование, аудит контрактов (через Slither, Mythril) Отчёт об аудите
Деплой в mainnet Перенос конфигурации, мониторинг, документация Продакшн-система + runbook

Сроки и стоимость

  • Интеграция через proxy (OP Stack): от 2 до 3 недель настройка, тестирование и запуск на testnet.
  • Кастомная интеграция: от 4 до 8 недель, включая аудит.
  • Разработка собственного DA слоя на EigenDA: от 3 до 4 месяцев.

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

Наша команда выполнила 10+ интеграций DA слоёв, использует промышленные инструменты (Foundry, Slither, Tenderly) и гарантирует корректную настройку с последующей поддержкой. Закажите консультацию по интеграции EigenDA.

Документация и исходный код EigenDA whitepaper и GitHub репозиторий: github.com/Layr-Labs/eigenda