What Is a Proxy Pattern in the Context of Smart Contract Mutability?
A proxy pattern separates the contract's storage (data) from its logic (code). Users interact with a simple, immutable proxy contract, which delegates all function calls to a separate, upgradeable logic contract.
To upgrade, the developer simply points the proxy to a new logic contract address, preserving the contract's state and address.