EIP-4844 (Proto-danksharding): блобы и дешёвые L2-транзакции

EIP-4844 (Proto-danksharding) — это обновление протокола Ethereum, которое вводит новый тип транзакций с «блобами» данных (blob-carrying transactions). Блоб-данные живут в консенсусном слое, не читаются EVM, хранятся ограниченное время и оплачиваются по отдельному рынку комиссий («blob gas»).

EIP-4844 был активирован на мейннете в составе апгрейда Dencun (Deneb + Cancun) в марте 2024 года и стал первым крупным шагом к danksharding, резко снизив стоимость публикации данных для L2-rollup’ов.

Основы DA см. в Data availability, обзор решений — в Data availability для rollup’ов: какие есть решения и чем они отличаются.

EIP-4844 (Proto-danksharding): блобы и дешёвые L2-транзакции

Задачи EIP-4844 и место в дорожной карте Ethereum

До EIP-4844 L2-rollup’ы публиковали данные о транзакциях на L1 в виде:

  • calldata — байты, навсегда остающиеся в истории Ethereum.

Это:

  • гарантировало надёжную доступность данных;
  • но делало публикацию очень дорогой и ограниченной по объёму.

EIP-4844 решает две задачи:

  • даёт rollup’ам отдельное, дешевлеe пространство для данных — блобы;
  • готовит протокол к будущему danksharding: архитектура и криптопримитивы совместимы с выборочной проверкой доступности данных (DAS).

Связанные элементы дорожной карты описаны на страницах Данктшардинг (Danksharding) — путь к массовому масштабированию Ethereum и PeerDAS и EIP-7251 в Ethereum — масштабирование данных и валидаторов.

Что такое блобы и blob-транзакции

EIP-4844 добавляет новый тип транзакций (часто называют «тип-3»), который:

  • несёт один или несколько blob’ов — крупных кусков бинарных данных фиксированного размера;
  • публикует коммитменты этих блобов в блоке L1;
  • оплачивает отдельный компонент комиссии — blob gas.

Ключевые свойства блоба:

  • размер порядка 128 КиБ (4096 полей по 32 байта);
  • блоб хранится в консенсус-слое (Beacon Chain), а не в исполнении (EVM);
  • через ~4096 эпох (~18 дней) блоб-данные могут быть удалены, но коммитменты остаются;
  • смарт-контракты не имеют доступа к содержимому блоба — только к хэшу/коммитменту (например, через BLOBHASH).

С точки зрения узлов:

  • им приходится хранить блоб-данные только ограниченное время;
  • этого достаточно, чтобы все участники L2 скачали и реплицировали их в свою DA-инфраструктуру (индексаторы, архивация, отдельные DA-слои).

KZG-коммитменты и проверка целостности

Чтобы узлы могли быть уверены, что:

  • данные блоба не подменялись;
  • коммитмент действительно соответствует содержимому,

EIP-4844 использует KZG-коммитменты:

  • блоб интерпретируется как набор значений некоторого полинома;
  • на этот полином строится KZG-коммитмент;
  • вместе с блобом могут публиковаться KZG-доказательства отдельных точек.

Свойства:

  • компактные доказательства и коммитменты;
  • проверка быстрая и дешёвая;
  • корректность полагается на корректный trusted setup (KZG-церемония с множеством участников).

Подробнее о примитиве см. KZG-коммитменты — полиномиальные коммитменты для Ethereum (EIP-4844 и Verkle).

Отдельный рынок комиссий: blob gas

Для блобов создаётся собственный рынок комиссий, похожий на EIP-1559:

  • есть таргет по количеству блобов в блоке и верхний лимит;
  • если спрос выше таргета — blob base fee растёт;
  • если ниже — blob base fee снижается.

Это отделяет:

  • «обычный» gas (исполнение EVM, calldata);
  • и «blob gas» (DA-место для rollup’ов).

Итого:

  • дешёвое пространство под блобы почти не конкурирует с обычными L1-транзакциями;
  • нагрузка rollup’ов переносится в отдельный контур ценообразования.

Ключевые параметры EIP-4844

Параметр Значение (на запуске Dencun) Комментарий
Размер блоба ≈ 128 KiB Фиксированный размер; оплата идёт за целый блоб.
Хранение данных ~4096 эпох (порядка 18 дней) После этого блобы могут удаляться из консенсуса.
Блобов на блок (target) Цель ≈ 3 блоба, жёсткий максимум ≈ 6 блобов Определяет динамику blob base fee.
Доступ из EVM Нет Контракт видит только хэш/коммитмент.
Тип транзакции Blob-carrying transaction (новый тип) Состоит из обычной части и набора блобов.

Как rollup использует блобы: схема по шагам

Типичный workflow для L2-rollup’а:

  • 1. Агрегация транзакций.

Оператор rollup’а собирает десятки/сотни L2-транзакций в пакет, исполняет их off-chain и рассчитывает новое состояние.

  • 2. Публикация данных в блобе.

Пакет данных записывается в один или несколько blob’ов. На L1 отправляется blob-транзакция с коммитментами блобов.

  • 3. Проверка и хранение.

Узлы консенсус-слоя проверяют KZG-коммитменты. Блоб-данные доступны всем узлам и индексаторам в течение срока хранения.

  • 4. Использование proof’ов.

В зависимости от типа rollup’а:

В обоих случаях доказуемость корректности опирается на доступность блоб-данных.

  • 5. Репликация и удаление.

Пока блобы живут на L1, участники успевают скачать их и сохранить в собственных DA-системах (архивы, внешние DA-слои). После этого блобы могут быть удалены из консенсус-слоя.

Эффект EIP-4844 для L2: комиссии и масштабирование

EIP-4844 заметно изменил экономику L2:

  • Снижение стоимости публикации данных.

Переход с calldata на блобы:

  • резко уменьшает цену за килобайт данных;
  • позволяет rollup’ам сильно сократить комиссии для пользователей, особенно при высокой активности.
  • Рост доступного DA-пространства.

Таргет по блобам на блок даёт отдельный канал пропускной способности, не конкурирующий напрямую с обычными L1-транзакциями.

  • Подготовка к danksharding.

Архитектура с блобами и KZG-коммитментами — фундамент для будущего:

  • data availability sampling;
  • увеличения числа и объёма блобов;
  • полноценного danksharding, когда L2 смогут расти ещё на порядки.

Эффект EIP-4844 стоит рассматривать вместе с общим развитием L2-экосистемы (см. L2-экосистема Ethereum: optimistic и ZK-rollups, L3 и shared-sequencers и Сравнение комиссий L1 и L2: сколько стоит транзакция в Ethereum и популярных L2).

Ограничения и риски EIP-4844

Несмотря на плюсы, у подхода есть ограничения:

  • Ограниченный срок хранения данных.

Блобы не сохраняются навсегда:

  • инфраструктура rollup’а должна успеть выгрузить и реплицировать данные;
  • для долгосрочного хранения нужны архивы и внешние DA-решения;
  • при ошибках в операционке возможны проблемы с восстановлением истории.
  • Зависимость от параметров blob-рынка.

При всплесках спроса:

  • blob base fee может существенно вырасти;
  • комиссии L2 временно «откусят» часть выгоды от EIP-4844.
  • Trusted setup для KZG.

Безопасность KZG-коммитментов опирается на честность хотя бы одного участника KZG-церемонии. Это не практический блокер, но важное теоретическое допущение.

  • Это ещё не полный danksharding.

Proto-danksharding:

  • не реализует DAS для всех узлов Ethereum;
  • аккуратно ограничен по количеству/размеру блобов;
  • всё ещё промежуточный этап по сравнению с целевым дизайном danksharding.

FAQ по EIP-4844

Чем блобы отличаются от calldata? Calldata навсегда остаётся в истории Ethereum, доступна EVM и оплачивается обычным gas. Блоб-данные:

  • живут только в консенсус-слое и ограниченное время;
  • не читаются из смарт-контрактов;
  • оплачиваются по отдельному рынку blob gas и дешевле для больших объёмов.

Можно ли прочитать содержимое блоба из смарт-контракта? Нет. Контракт оперирует лишь хешами/коммитментами. Сами блобы доступны только на уровне узлов. Если приложению нужны данные on-chain, их по-прежнему нужно хранить в calldata или состоянии.

Сколько блобов может быть в блоке? На запуске:

  • протокол нацеливается на несколько блобов на блок (таргет);
  • есть верхний жёсткий лимит.

Точное значение параметров может эволюционировать в будущих апгрейдах.

Снижает ли EIP-4844 комиссии на L1? Прямо — нет. Обычные L1-транзакции продолжают конкурировать за обычный gas. EIP-4844 снижает стоимость DA для L2, что отражается на комиссиях в rollup’ах.

Это «готовый danksharding»? Нет, это proto-этап. Чтобы реализовать полный danksharding, Ethereum ещё предстоит:

См. также

Task Runner