Блоб-транзакция (Blob Transaction)
Тип транзакции, представленный в EIP-4844 Ethereum, предназначенный для снижения комиссий за транзакции путем отдельного хранения блобов данных от основных данных транзакции.
Blob транзакции являются ключевым компонентом обновления Proto-Danksharding Ethereum. Они позволяют включать большие блобы данных (до 128 КБ) наряду со стандартной транзакцией. Эти данные временно хранятся в сети, что делает включение больших объемов данных значительно дешевле по сравнению с традиционными calldata. Это снижение затрат достигается потому, что данные не хранятся постоянно на уровне исполнения, а скорее в отдельном уровне доступности данных. Эта конструкция особенно выгодна для решений масштабирования Layer 2, позволяя им публиковать данные транзакций более доступно.
graph LR
Center["Блоб-транзакция (Blob Transaction)"]:::main
Rel_eip_4844["eip-4844"]:::related -.-> Center
click Rel_eip_4844 "/terms/eip-4844"
Rel_layer_2["layer-2"]:::related -.-> Center
click Rel_layer_2 "/terms/layer-2"
Rel_data_availability["data-availability"]:::related -.-> Center
click Rel_data_availability "/terms/data-availability"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Проверка знаний
🧒 Простыми словами
Представьте, что вы отправляете большую посылку (вашу транзакцию), и раньше вам приходилось платить много за всю упаковочную бумагу внутри. Блоб-транзакции позволяют отправлять упаковочную бумагу отдельно и гораздо дешевле, что значительно снижает общую стоимость доставки.
🤓 Expert Deep Dive
EIP-4844 кардинально меняет стратегию доступности данных в Ethereum, вводя «блобы» и KZG-коммитменты. Блобы — это непрерывные фрагменты данных, прикрепляемые к блоку, с максимальным размером и отдельным лимитом газа, отличным от calldata. Важно отметить, что блобы напрямую недоступны для логики смарт-контрактов EVM; их основная цель — проверка доступности данных. Коммитмент к данным блобов достигается с помощью KZG-полиномиальных коммитментов, где данные блоба представляют собой коэффициенты полинома, а коммитмент — точку на эллиптической кривой. Это позволяет эффективно генерировать и проверять доказательства. Узлы обязаны загружать данные блобов в течение ограниченного периода времени (например, ~4096 блоков или ~27 часов) для целей проверки, после чего они могут удалить их, уменьшая раздувание состояния. Стоимость газа для публикации блобов значительно ниже, чем для calldata, и рассчитывается на основе размера блоба и отдельной «цены газа за блобы». Этот механизм является предшественником полного Danksharding, где пространство блобов будет расширено и распределено по нескольким шардам. Компромиссы включают сложность схемы KZG-коммитментов и требование временного хранения для узлов, но основным преимуществом является существенное снижение затрат на публикацию данных роллапов.