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

Rollup стикаються з дилемою: зберігати всі дані на Ethereum дорого, а off-chain DA рішення вимагають довіри. EigenDA вирішує цю проблему за допомогою математичного доказу доступності та економічних гарантій EigenLayer. Порівняно з Ethereum blobs, EigenDA забезпечує в 10 разів більший throughput (10+

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

Часті запитання

Останні роботи

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

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

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