What Is the Role of a Proxy Contract in Maintaining Upgradability?
A proxy contract is a simple, immutable contract that holds the storage (data) and a pointer to the current implementation contract (logic). Users always interact with the proxy's fixed address.
To upgrade, a new implementation contract with the updated logic is deployed, and the proxy's pointer is simply updated to the new address. This allows for logic changes without altering the user-facing address or losing state data.