Ethereum’s rollup-centric roadmap depends on one fundamental economic condition:
Data availability must remain cheap, predictable, and stable under load.
EIP-4844 introduced blobs and dramatically lowered DA costs. Rollups adopted them overnight. But the last year revealed a subtle failure mode in the fee market:
Blob fees collapse to 1 wei whenever execution gas dominates total rollup costs.
When that happens, EIP-1559’s elasticity mechanism stops functioning, blob fees stop responding to demand, and recovery becomes painfully slow.
EIP-7918 is a surgical fix:
Introduce a reserve price floor for blob gas proportional to the L1 execution base fee.
This restores elasticity, prevents irrational low prices, and aligns blob fees with real node costs.
This article provides a complete, research-level walkthrough of the mechanism, economics, motivation, implementation, attack surface, and rollout implications.
1. Why EIP-7918 Exists — The Economic Failure Mode
Execution Gas Dominates Rollup Costs
Rollups pay two independent L1 costs:
- Execution gas — calldata hashing, base transaction cost, inclusion overhead
- Blob gas — KZG data verification and DA fees
In normal market conditions they’re separate.
But when L1 is congested — spikes in MEV, large validator sets, delayed attestations — execution base fee rises sharply. Suddenly:
total_cost_per_blob ≈ execution_cost + 1 wei
At this point, blob price no longer impacts rollup behavior.
Demand becomes vertical — completely insensitive to the blob base fee.
What Happens When Demand Is Inelastic
EIP-1559 only works when price ↔ demand are linked.
Once that link breaks:
- blob_base_fee trends downward until it hits 1 wei
- once at 1 wei, recovery becomes extremely slow
- fee signals stop reflecting actual usage
- the market drifts into unstable, non-resilient behavior
This isn’t theoretical — it happened frequently from late-2024 through early-2025.
Blob fee charts show long periods of:
- flatline at 1 wei
- delayed upward reaction when demand increases
- erratic jumps due to congestion
- divergence from actual KZG verification costs
Simply put:
the blob market fails when execution costs dominate.
2. What EIP-7918 Actually Changes
EIP-7918 adds a reserve price condition inside the blob fee adjustment logic.
The Reserve Price Rule
The mechanism prevents blob_base_fee from falling below:
blob_base_fee >= (BLOB_BASE_COST * execution_base_fee) / GAS_PER_BLOB
Where:
BLOB_BASE_COST = 2**13GAS_PER_BLOB = 131072
This links the minimum blob price to execution gas, ensuring the blob fee always remains economically meaningful.
Why Use a Ratio Instead of a Fixed Floor?
Because:
- execution gas is the dominant cost driver today
- the ratio automatically scales during congestion
- it remains future-proof under proto-danksharding, full danksharding, and throughput increases
- no retuning needed when DA capacity expands
- aligns blob price with actual node computation (KZG costs, CL proofs, storage pressure)
It’s a minimal change that fixes the exact failure mode without redesigning the fee market.
3. Annotated Algorithm
Here is the full logic:
def calc_excess_blob_gas(parent: Header) -> int:
target_blob_gas = GAS_PER_BLOB * blobSchedule.target
# Standard EIP-1559 behavior:
# If usage is below target, reset to zero so next block lowers price.
if parent.excess_blob_gas + parent.blob_gas_used < target_blob_gas:
return 0
# Reserve price logic:
# If blob base fee is "too low" relative to execution base fee,
# then use a slower, reserve-aware adjustment.
if BLOB_BASE_COST * parent.base_fee_per_gas > GAS_PER_BLOB * get_base_fee_per_blob_gas(parent):
return parent.excess_blob_gas + \
parent.blob_gas_used * (blobSchedule.max - blobSchedule.target) // blobSchedule.max
# Otherwise use normal EIP-1559 pricing.
return parent.excess_blob_gas + \
parent.blob_gas_used - target_blob_gas
The core insight:
When the blob fee falls below a rational lower bound, EIP-7918 slows the decrease and speeds up recovery.
This keeps the blob market responsive, elastic, and stable.
4. Execution Flow Diagram
Using your diagram exactly (cleaned formatting, same logic):
5. Why the Reserve Price Matters
5.1 Fixes the “1 wei collapse” problem
Without EIP-7918:
- blob_base_fee → 1 wei
- stays pinned there even during high demand
- recovery takes hours
- blobs become mispriced relative to execution
With EIP-7918:
- blob_base_fee stays tied to execution base fee
- elasticity restored
- recovery happens in minutes
- price reflects real compute load
5.2 Blobs impose real compute costs
People often underestimate this. Per blob:
- EL KZG verification ~= 15 × POINT_EVAL precompile
- CL performs additional checks for column proofs
- block builders handle hundreds of proofs
- supernodes and execution clients incur heavy memory pressure
Charging 1 wei for this load is not economically sound.
5.3 Restores meaningful price signals
If blob price → irrelevant,
→ EIP-1559 stops working.
This EIP makes blob fees matter again.
5.4 Future-proof for proto-danksharding → danksharding
As throughput increases:
- more blobs per block
- more proofs
- more verification cost
- more demand elasticity needed
The reserve price naturally scales with execution gas, keeping blob pricing correct.
6. Empirical Results (2024–2025 Chain Data)
Running EIP-7918 on ~900k historical blocks shows:
- blob fee curves smooth out
- no collapse-to-1-wei periods
- better correlation with block usage
- faster fee convergence after congestion
- near-linear response to demand
- rollups behave more predictably
The data strongly supports the fix.
7. Security, Consensus, and Attack Surface
EIP-7918 deliberately avoids risk:
- ✔ no change to consensus block validity
- ✔ no impact on proposer/builder separation
- ✔ no new griefing vectors
- ✔ impossible to manipulate reserve price
- ✔ bounded growth, consistent with EIP-1559 limits
- ✔ preserves block builder incentives
- ✔ compatible with single-slot finality planning
The change is monotonic, low-risk, and defensive.
8. Trade-Offs and Alternatives Considered
8.1 Why not increase blob fees across the board?
That would:
- distort equilibrium
- penalize low-demand periods
- contradict the cheap-DA roadmap
The reserve activates only when execution gas dominates.
8.2 Why not redesign blob markets entirely?
Ideas considered:
- multi-dimensional fee markets
- KZG-cost-indexed base fees
- dual-slope elasticity
- builder-aware blob auctions
All too complex for a near-term fix.
EIP-7918 is intentionally minimal and deployable today.
8.3 Does this hurt rollups?
No.
During high congestion:
- 90–99% of rollup costs = execution gas
- blob fee contributes almost nothing
- EIP-7918 only adjusts the underpriced portion
Rollups benefit from smoother and more predictable blob pricing.
9. Final Summary
EIP-7918 introduces a reserve-price floor for blob gas based on L1 execution gas.
This simple, mathematically clean intervention:
- prevents blob_base_fee from collapsing
- restores elasticity required by EIP-1559
- better aligns fees with real node compute cost
- stabilizes blob markets under execution congestion
- improves convergence speed
- reduces volatility
- future-proofs blob pricing for danksharding
- improves rollup UX and predictability
It is a low-risk, high-impact fix to a subtle but important economic flaw in the current blob market.

Top comments (0)