what's even the alternative, are there any best practices recognized yet? do proposal periods or token-weighted veto powers make a difference?
Conversation
Replying to
Uniswap style...don't upgrade; deploy new ones and let people migrate
*ducks*
8
1
44
That's actually my preference: immutable smart contracts that do what you expect them to do. Definitely a lot safer for end users.
Is it more dev work? Is it a UX burden? Dors it complicate external integrations? Sadly also yes
1
2
9
I don't think it is always safer for users. When Aave had an issue with xSushi it was solved by an upgrade. If that capability hadn't been there, then billions would have been at risk with no realistic chance for people to migrate in time.
2
2
It can be both, immutable core logic for each specific version of the DeFi protocol and upgradable/replaceable adapters that are the interfaces to other protocols/assets.
1
This doesn't solve the issue with generalised lending protocols, where security problems come not just from code logic, but from market conditions.
You can, in principle, build simple lending protocols that don't have these issues, but they are vastly more capital inefficient.
3
1
4
1
3
I think we need both immutable and upgradable protocols.
There are trade offs to both, in terms of technical and legal, but also in terms of broader issues of decentralisation.
But the debate and choice to use shouldn't be either/or. Blockchain are broad enough to support both.
1
1
6
More tools, also used in practice:
- deploy immutable contracts, with governance over some parameters. Eg fees
- deploy immutable factory contracts and template contracts. User invokes factory to deploy new contract from template. Governance to add new templates.
1
1
3
> deploy immutable contracts with governance over some parameters. Eg fees
Here's an example. It has highly flexible fees going to several places.
github.com/oceanprotocol/
1
> deploy immutable factory contracts and template contracts
Here's an example factory:
github.com/oceanprotocol/
And a template used by the factory:
github.com/oceanprotocol/





