Based on the upgradeable smart contract pattern, a smart contract author can create a contract x that proxies to contract y. Let's say the contract is an ERC20 token where Alice buys 100 tokens.

How can Alice now trust that the developer of the contract will not simply proxy x -> z which contains a new version of transfer() is called, it redirects the tokens to someone else?

If there is no guarantee of not changing, what makes it different to trusting any other third party like a bank or facebook who can change access at any time?

1 Answer 1


Nothing really. An authorized account can make an upgradable contract do anything they want.

On the other hand projects have created Governance contracts that impose certain restrictions on upgrades. A period of time to validate the upgrade, or withdraw if they don't agree on it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.