Summary
There is no direct native support for upgradable contracts in Ethereum. This is because pure decentralization cannot be achieved if a contract is upgradable. Once contract code becomes immutable, then only you can trust that the code and its logic will never be changed. However, due to invisible bugs present in contracts, a lot of hacking has taken place; therefore, ZeppelinOS came up with upgradable contracts to avoid bugs in contracts, even if they have already been deployed.
ZeppelinOS should not be used until there is a real need for it. You should write immutable contracts to have pure decentralization for your applications. If you plan to upgrade your contracts in future, then you should consider using ZeppelinOS.
In the next ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access