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?
- Аналіз архітектури — визначаємо, який тип інтеграції підходить: через готовий proxy (OP Stack) або кастомний.
- Розгортання інфраструктури — налаштовуємо EigenDA Disperser, контракти та підключаємося до EigenLayer. Тестуємо на Holesky.
- Інтеграція dispersal — імплементуємо відправку даних через EigenDA API з fallback на Ethereum calldata. Реалізуємо on-chain верифікацію.
- Навантажувальне тестування — перевіряємо throughput, latency та стійкість до відмов. Використовуємо Tenderly для симуляції.
- Аудит та деплой — проводимо аудит контрактів (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.







