Storage Layout Collision
Storage layout collision occurs when a proxy contract and its implementation contract define state variables in overlapping memory slots. Since the proxy holds the state, it expects specific data at specific positions; if the implementation writes to those same positions unexpectedly, it can corrupt critical protocol data.
This is a major risk during upgrades if the new implementation changes the order or type of state variables. Developers must use explicit storage mapping or inheritance structures that ensure compatibility across versions.
Failing to account for this leads to catastrophic failures where user balances or ownership rights are accidentally overwritten or erased.