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

Хранение всех данных rollup в Ethereum обходится дорого, а off-chain решения требуют доверия к посредникам. Мы интегрируем EigenDA — децентрализованный слой доступности данных с экономическими гарантиями EigenLayer, который обеспечивает высокую пропускную способность и низкую стоимость. Наша команда реализует интеграцию под ключ, сопровождая проект от аудита до поддержки, чтобы ваше решение работало надёжно и масштабировалось вместе с бизнесом.
Часто задаваемые вопросы

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

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1141