Revamping the Foundation: Enhancing Smart Contract and Proxies for Future-proof Performance [8/8]
In previous series of articles, we discussed the fundamentals and various useful basics regarding smart contract proxies. I highly suggest that you refer back to those articles and review them. (The hyperlinks located at the bottom of this piece of writing.)
Our aim with this present publication is to provide a conclusion based on the topics we have addressed thus far.
TL;DR
Throughout this article series, you have learned various techniques for upgrading Smart Contracts. When it comes to audits, it is often advisable to opt for simpler methods. Personally, I am a proponent of the KISS principle (keep it simple stupid), even if it means sacrificing elegance at times.
The Diamond Storage approach, which involves breaking down a Smart Contract into smaller parts and reassembling them in a Proxy contract, is an intriguing option. However, I would not currently recommend it due to the added complexity it introduces to an ecosystem that deals with large sums of money.
Having knowledge of these different approaches, if I were starting a new substantial project from scratch, I would employ OpenZeppelin Plugins for upgradeability needs requiring a constant address. For situations where a constant address is not necessary, I would likely choose the Eternal Storage pattern or an even simpler alternative. These options are more straightforward to audit, easier to comprehend, and less prone to errors.
I believe this article series has helped you choose the most suitable pattern for your project.
If you enjoyed reading this series of articles, please leave a comment to let me know. This will encourage me to create more content on similar topics.
Useful links :
Standards for Smart Contract Upgrades and Eternal Storage without Proxy
Storage and Storage Collisions, and elucidate the EIP-897 standard for our initial genuine Proxy
EIP-1822 UUPS standard and EIP-1967 Standard Proxy Storage Slots .
EIP-1538: Transparent Contract Standard and EIP-2535: Diamond Standard.
Metamorphosis Smart Contracts using CREATE2
discord: am.dd#3991