How Blob Transaction Works
EIP-4844 adds “blob-carrying transactions” as a step toward danksharding (often called proto-danksharding). The goal is to give rollups a cheaper way to publish their batch data to Ethereum than putting it in calldata.
A blob transaction includes normal EIP-1559-style fields, plus a max_fee_per_blob_gas and a list of blob_versioned_hashes (identifiers derived from KZG commitments). The execution layer (EL) processes the transaction like any other, but it does not have access to the blob contents—only the commitments/hashes.
The blob data itself is propagated and validated via the consensus layer (CL). Nodes can verify that the blobs match their commitments using KZG commitment machinery, including a point-evaluation precompile used for proof verification. Because blobs are meant for data availability rather than permanent storage, the protocol is designed so this data can be pruned after a relatively short retention period.
Blob data also has its own fee market. In addition to regular gas fees for execution, blob transactions pay a separate blob fee (a blob base fee) priced in “blob gas.” This creates a distinct market for data availability bandwidth, which can move independently from normal L1 gas prices.
Example
If calldata is like writing a message permanently into Ethereum’s public record, then a blob transaction is like posting a large attachment that’s verifiable and available for a while, but not kept forever.
Why It Matters
Blob transactions are mainly for rollups: cheaper data availability on Ethereum can reduce rollup operating costs and, in many cases, end-user fees. They also prepare Ethereum for future scaling upgrades by introducing the transaction format and pricing model needed for full danksharding.
Risks or Limitations
Blob contents are not accessible to EVM execution, so contracts cannot read or compute over blob data directly. Blob data is intended to be prunable, so applications that need long-term retrieval must rely on indexing/archival infrastructure. Blob throughput per block is capped (via blob gas targets/limits), so congestion can push blob fees up, and transactions can fail to land if max_fee_per_blob_gas is set too low.