Інтеграція з 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 та вказує на проксі. Все інше прозоро.

Що входить в інтеграцію?

Етап Що робимо Результат
Аналітика Вивчаємо архітектуру вашого 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