Skip to content

Commit b7aedd8

Browse files
authored
Update EIP-7928: Clarify anti-dos measure for invalid, bloated BALs
Merged by EIP-Bot.
1 parent 3a84279 commit b7aedd8

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

EIPS/eip-7928.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,23 @@ Validating access lists and balance diffs adds validation overhead but is essent
561561

562562
Increased block size impacts propagation but overhead (~70 KiB average) is reasonable for performance gains.
563563

564+
### Early Rejection of Malicious BALs
565+
566+
Since `storage_reads` entries are not mapped to specific transaction indices, their validity can only be confirmed after executing all transactions. A malicious proposer could exploit this by declaring phantom storage reads that are never accessed, forcing clients into unnecessary I/O prefetching and significant data download while the block remains unrejectable until completion.
567+
568+
To mitigate this, clients SHOULD enforce a gas-budget feasibility check at transaction boundaries. Let:
569+
570+
- `R_remaining` = number of declared storage reads not yet accessed
571+
- `G_remaining` = remaining block gas
572+
573+
The following invariant must hold:
574+
575+
```
576+
G_remaining >= R_remaining * 2000
577+
```
578+
579+
Where 2000 is the minimum gas cost for a storage read (via [EIP-2930](./eip-2930.md) access lists: 1900 upfront + 100 warm read). If this check fails, the block can be rejected immediately as invalid, since insufficient gas remains to access the declared reads. This check SHOULD be performed periodically (e.g., every 8 transactions) to enable early rejection without impacting parallel execution.
580+
564581
## Copyright
565582

566583
Copyright and related rights waived via [CC0](../LICENSE.md).

0 commit comments

Comments
 (0)