Summary (ELI5)
This proposal makes it progressively more expensive to store data in contracts that already have lots of storage. Think of it like a progressive tax on storage: small contracts pay normal fees, but contracts storing massive amounts of data pay exponentially more for each additional storage operation.
Why it matters: Ethereum’s state is growing unsustainably, making it harder and more expensive to run nodes. This threatens decentralization.
Who benefits directly: Node operators and the overall network health benefit from reduced state growth. Users benefit from a more sustainable and decentralized network long-term.
Detailed Justification
Primary Benefits
- State Growth Mitigation: Creates economic pressure against unbounded state expansion, directly addressing one of Ethereum’s most pressing scalability challenges
- Improved Node Accessibility: Slower state growth means lower hardware requirements for node operators, preserving decentralization
- Market-Based Incentives: Aligns storage costs with actual long-term network burden rather than one-time gas fees
Secondary Benefits
- Spam Reduction: Makes it economically infeasible to use Ethereum as cheap permanent storage for non-critical data
- Developer Efficiency: Encourages more thoughtful state management and efficient contract design
- Future-Proofing: Creates a framework that can be adjusted as network conditions evolve
Why Now?
- Scalability Some large contracts have an impact on the block processing time.
- Technical Maturity: We now have sufficient understanding of state growth patterns to design targeted solutions. Paired with EIP-2926 - and a potential future eip targeting account creation - there is a good coverage of mechanisms to disincentivize state growth.
Why This Approach vs Alternatives?
Versus Flat Fee Increases:
- Doesn’t penalize small/medium contracts or normal usage
- Targets actual problem actors (massive state consumers)
- More politically feasible as it doesn’t affect most users
Versus State Rent:
- Lower implementation complexity
- No breaking changes to existing contracts
- One-time payment model preserved (no ongoing rent management)
Versus State Expiry Alone:
- Preventative rather than reactive
- Immediate impact on state growth rate
- Simpler to reason about for developers
Stakeholder Impact
Positive Impact
Node Operators:
- Reduced hardware requirements growth
- Reduced block execution time
Regular Users & Small dApps:
- No impact for contracts below activation threshold (~8GB)
- Better network performance long-term
Protocol Sustainability Advocates:
- Direct action on state growth problem
- Market-based solution aligning with Ethereum’s economic model
Negative Impact
Large State Consumers:
-
Impact: Significantly higher costs for contracts with massive storage
-
Mitigations:
- High activation threshold protects legitimate use cases
- Gradual rollout allows time for adaptation
- Alternative storage solutions remain viable
-
Trade-offs: Some legitimate but inefficient use cases may need to migrate or optimize
Existing Large Contracts:
- Impact: Cost increases for storage operations
- Mitigations: Optional depth field means existing contracts start from 0
- Trade-offs: Necessary to avoid grandfathering in problematic contracts
Technical Readiness
No prototype currently exists, but its implementation should be straightforward as it’s just about adding and maintaining a single field in the account header.
Security & Open Questions
Known Security Considerations
Cross-Contract Storage: Apps might distribute storage across multiple contracts to avoid penalties, but at the cost of a call, which will mitigate the impact of this approach.
Open Questions
Parameter Tuning:: What are optimal values for EXP_FACTOR and LIN_FACTOR?