Switch from transparent proxies to UUPS proxies #232
Labels
enhancement
Improvements
needs discussion
This issue needs more discussion before its implementation
security
This issue impacts security assumptions
solidity
Issues related to the solidity contracts
Summary
We are currently using a transparent proxy pattern for contract upgradability. The UUPS proxy pattern would be better for our use case since we want to have more advanced authorization for upgrades. Openzepellin also provides UUPS utilities, and their recommendation is now shifting towards UUPS proxies. See Transparent vs UUPS proxies.
Problem Definition
In transperant proxy pattern, all upgrade authorization happens in the proxy contract by a single admin. Whereas, in UUPS, the upgrade authorization logic is to be placed in the logic contracts themselves. This allows more freedom when it comes to authorization control, and is required for our use case where we want to have two admins:
There are other advantages to UUPS proxies as discussed in the aforementioned article.
Proposal
Switch to UUPS proxy pattern
For Admin Use
The text was updated successfully, but these errors were encountered: