Skip to main content

Try it Live

Run Blob examples in the interactive playground
EIP-4844 (Proto-Danksharding) introduces blobs to Ethereum, enabling L2 rollups to post data at significantly reduced costs. This page covers the technical specification in detail.

Overview

EIP: 4844 - Shard Blob Transactions Status: Final (Deployed in Dencun upgrade, March 2024) Purpose: Temporary data availability for L2 rollups

Key Changes

  1. New Transaction Type - Type 3 (0x03) for blob transactions
  2. Blob Data - 131,072 bytes per blob, max 6 per transaction
  3. Separate Gas Market - Blob gas independent from execution gas
  4. Temporary Storage - Blobs pruned after ~18 days
  5. KZG Commitments - Cryptographic proofs for data integrity

Blob Structure

Field Elements

Blobs contain 4,096 field elements over BLS12-381 scalar field:

Field Element Constraints

Each 32-byte element must be < BLS12-381 scalar field modulus:
Elements >= modulus cause transaction rejection.

Transaction Format

Type 3 Transaction

Blob Sidecar

Blobs, commitments, and proofs are NOT included in on-chain transaction:
Only blobVersionedHashes are stored on-chain permanently.

Complete Example

Blob Gas Market

Gas Parameters

Base Fee Adjustment

Blob base fee adjusts exponentially based on usage:

Formula

Example Calculation

Versioned Hashes

Format

Computation

Version Byte

Data Availability

Retention Period

Pruning

After ~18 days:
  • Pruned: Blob data, commitments, proofs
  • Retained: Versioned hashes (on-chain)
L2s MUST:
  1. Download blob data within retention period
  2. Store data locally for fraud/validity proofs
  3. Make data available to users (RPC nodes)

Example: L2 Data Recovery

KZG Commitments

Trusted Setup

EIP-4844 uses KZG commitments with trusted setup from KZG Ceremony:
  • Participants: 4,096+ contributors
  • Security: Safe if at least 1 participant honest
  • Powers of Tau: 4,096 (matching blob field elements)

Commitment Binding

Network Propagation

Mempool Inclusion

Blob transactions in mempool include full sidecar:
  • Transaction (with versioned hashes)
  • Blobs (full 131,072 bytes each)
  • Commitments (48 bytes each)
  • Proofs (48 bytes each)

Block Inclusion

Blocks include only:
  • Transaction (with versioned hashes)
Validators must:
  1. Verify KZG proofs before including
  2. Publish blob sidecar to beacon chain
  3. Store blobs for retention period

Example: Validator Verification

Transaction Costs

Total Cost

Comparison with Calldata

Consensus Layer Integration

Beacon Chain Storage

Blobs stored in beacon chain for ~18 days:
  • Location: Separate from execution payload
  • Access: Via beacon node API
  • Pruning: Automatic after retention period

RPC Endpoints

Upgrade Path

EIP-4844 is step 1 of full danksharding:
  1. Proto-Danksharding (EIP-4844) - Current
    • 6 blobs per block (768 KB)
    • KZG commitments
    • Temporary storage
  2. Full Danksharding - Future
    • 64+ blobs per block (8+ MB)
    • Data availability sampling
    • Same commitment scheme

Resources

See Also