Overview of Standards for Smart Contract Upgrades
Here are the different standards that emerged for Smart Contract Upgrades:
-
Weāre trying the Eternal Storage Patternā
Actually it was initially proposed by Elena Dimitrova on this Blogā
-
We expand with Proxies where it all started (apparently):
the upgradeable.sol gistā from Nick Johnson, Lead developer of ENS & Ethereum Foundation alum.
-
Created 2018-02-21 by Jorge Izquierdo and Manuel Araoz
-
EIP-1822: Universal Upgradeable Proxy Standard (UUPS)ā
Created 2019-03-04 by Gabriel Barros and Patrick Gallagher
-
EIP-1967: Standard Proxy Storage Slotsā
Created 2019-04-24 by Santiago Palladino Thatās OpenZeppelin is using.
-
EIP-1538: Transparent Contract Standardā Created 2018-10-31 by Nick Mudge
-
EIP-2535: Diamond Standardā Created 2020-02-22 by Nick Mudge
-
Not really a standard, but I think Metamorphic Smart Contractsā should be covered as well. Those are Smart Contracts that get re-deployed to the same address with different logic using EIP-1014 CREATE2ā. Itās said to be wild magicā in Ethereum.
For me it is important to understand the essence of whatās going on under the hood. I will therefore reduce the Smart Contract examples to its absolute necessity for the architectural explanation.
There is no ownership, no control, no governance, just barebones the theory behind the Storage Patterns.
If you need a full blown solution that works out of the box, checkout OpenZeppelin.