Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 13 additions & 18 deletions BEPs/BEP-657.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Status: Enabled
Type: Standards
Created: 2026-01-21
Description: Restrict blob transactions to blocks where block number modulo N equals zero. Initial N=5.
Description: Restrict blob transactions to blocks where block number modulo 10 equals zero
</pre>

# BEP-657: Limit Blob Transaction Inclusion by Block Number
Expand All @@ -21,54 +21,49 @@

## 1. Summary

This BEP restricts blob transaction inclusion to blocks where the block number modulo N equals zero. **The initial value of N is set to 5**, allowing blob transactions in blocks 0, 5, 10, 15, etc. Non-eligible blocks preserve blob fee state from their parent to maintain market continuity.
This BEP restricts blob transaction inclusion to blocks where the block number modulo 10 equals zero (i.e., blocks ending in 0). Non-eligible blocks preserve blob fee state from their parent to maintain market continuity.

## 2. Motivation

BSC's block time has been reduced from 3 seconds to 0.45 seconds, yet blob transaction volume has remained relatively constant at approximately one per 7-8 blocks. This mismatch has resulted in severe blob space oversupply.

**Blob Fee Market Dysfunction**: The ~6.7x increase in blob capacity with unchanged demand has caused the blob base fee to consistently remain at its minimum floor price. This prevents the EIP-4844 fee market mechanism from functioning properly, as it relies on supply-demand dynamics for price discovery.

By restricting blob transactions to every Nth block (blocks where `blockNumber % N == 0`), this BEP concentrates demand to restore proper fee market dynamics while maintaining adequate capacity for current usage patterns. **The initial value of N is set to 5**, meaning blob transactions can only be included in blocks 0, 5, 10, 15, etc. With 0.45s block times, the maximum inclusion delay of 2.25 seconds has minimal impact on L2 operations.
By restricting blob transactions to every 10th block (blocks where `N % 10 == 0`), this BEP concentrates demand to restore proper fee market dynamics while maintaining adequate capacity for current usage patterns. With 0.45s block times, the maximum inclusion delay of 4.05 seconds has minimal impact on L2 operations.

## 3. Specification

### 3.1 Blob Transaction Inclusion Rules

Define a parameter N that determines the frequency of eligible blocks. **The initial value of N is 5.**

For any block with block number `blockNumber`:
- If `blockNumber % N == 0`: The block MAY contain blob transactions
- If `blockNumber % N != 0`: The block MUST NOT contain any blob transactions
For any block with block number `N`:
- If `N % 10 == 0`: The block MAY contain blob transactions
- If `N % 10 != 0`: The block MUST NOT contain any blob transactions

Blocks violating this rule MUST be rejected as invalid.

With N=5, eligible blocks are: 0, 5, 10, 15, 20, 25, 30, etc.

### 3.2 Blob Fee Calculation Modification

**For blocks where `blockNumber % N == 1`:**
**For blocks where `N % 10 == 1`:**
- Normal EIP-4844 blob fee calculation applies

**For blocks where `blockNumber % N != 1`:**
**For blocks where `N % 10 != 1`:**
- `header.ExcessBlobGas` MUST equal `parent.ExcessBlobGas`

This ensures the blob fee is calculated once after each eligible block, then preserved across subsequent blocks until the next calculation.

## 4. Rationale

The modulo N restriction (1 in every N blocks) aligns with current demand patterns. **This BEP sets N=5 as the initial value.**
The modulo 10 restriction (1 in every 10 blocks) aligns with current demand patterns:

* **Fee Market Alignment**: Current usage (~1 blob tx per 7-8 blocks) naturally fits within the 1-in-5 schedule, enabling proper EIP-4844 fee mechanism operation while providing room for demand growth.
* **Minimal User Impact**: With 0.45s block time, maximum inclusion delay is 2.25 seconds, negligible for L2 sequencers posting data every 30-60 seconds.
* **Fee Continuity**: Non-eligible blocks inherit blob fee state from their parent, preserving market state across the 4-block gap and enabling proper price discovery at the next eligible block.
* **Adjustable Parameter**: N can be adjusted in future upgrades to adapt to changing demand patterns without requiring fundamental changes to the mechanism.
* **Fee Market Alignment**: Current usage (~1 blob tx per 7-8 blocks) naturally fits within the 1-in-10 schedule, enabling proper EIP-4844 fee mechanism operation.
* **Minimal User Impact**: With 0.45s block time, maximum inclusion delay is 4.05 seconds, negligible for L2 sequencers posting data every 30-60 seconds.
* **Fee Continuity**: Non-eligible blocks inherit blob fee state from their parent, preserving market state across the 9-block gap and enabling proper price discovery at the next eligible block.

## 5. Backward Compatibility

This is a consensus-breaking change requiring a hard fork. All validators and full nodes must upgrade before activation.

Transaction submitters must ensure blob transactions target eligible blocks (blocks where `blockNumber % N == 0`). **With N=5, eligible blocks are 0, 5, 10, 15, 20, etc.** Blob-related MEV opportunities will concentrate in these eligible blocks.
Transaction submitters must ensure blob transactions target eligible blocks (blocks where `N % 10 == 0`). Blob-related MEV opportunities will concentrate in these eligible blocks.

## 6. License

Expand Down