Why Does a Transparent Proxy Need to Check the Caller’s Address?
The Transparent Proxy checks the caller's address to resolve a function name clash. If the caller is the contract admin, the proxy executes the internal upgrade-related functions (like upgradeTo ).
If the caller is any other user, the proxy assumes the user wants to call a function in the logic contract and uses delegatecall. This prevents regular users from accidentally or maliciously calling admin functions.