Transparent Proxy Pattern
The transparent proxy pattern is a design strategy used to solve the function selector clash problem in proxy contracts. It works by ensuring that the proxy contract handles calls differently based on the sender's identity.
If the caller is the administrator of the proxy, the proxy processes the call itself, such as performing an upgrade. If the caller is a regular user, the proxy forwards the call to the implementation contract.
This clear separation of concerns prevents conflicts between the administrative functions of the proxy and the functional logic of the implementation. By enforcing this transparency, the design reduces the risk of accidental function calls and enhances the overall security of the upgrade process.
It is widely used in many popular DeFi protocols to manage complex smart contract systems.