enzymefinance / enzip

Enzyme Improvement Proposal
https://github.com/enzymefinance/ENZIP
8 stars 11 forks source link

MIP2 - Mutable, Immutable and Warning Risk Engineering Policies #2

Closed john-0x closed 1 year ago

john-0x commented 6 years ago
MIP: 2
Title: Mutable, Immutable and Warning Risk Engineering Policies
Authors: John Orthwein jo@melonport.com
Status: Draft
Type: MIP
Created: 2018-06-19
Reference implementation:

Abstract

This MIP would create a hierarchy for Melon Fund Risk Engineering Policies: how they are enforced and how they may be changed.

Background

The initial concept of Melon Protocol Risk Engineering was to define inviolable policies at fund inception which could not be changed. This was by design so as to demonstrate the enforced discipline of blockchain smart contracts. Certain Risk Engineering policies and policy parameters, however, may lend themselves to such permanence, while others may not. The design goal of this MIP is to offer flexibility to the Melon Fund creator to define the nature of the Melon Fund Risk Engineering policies and/or policy parameters.

Motivation

Over time, many things may change: investment environment, classification of specific tokens, discovery of malicious tokens, risk appetite, etc. Having to commit irreversibly to blockchain enforced smart contract rules my be too severe for certain rules or management purposes. If a Melon Fund creator (Investment Manager) is to commit to risk engineering rules for the Melon Fund, they may choose very liberal parameters, which demonstrates their implementation, but ameliorates their efficacy. A similar phenomenon happens in the legacy fund environment: Legal documents are specified with very broad criteria, which legally permits certain fund actions, even as marketing material or reports claim tighter criteria. In the worst case, given the choice between immutable policies and not having the policy, a manager may choose the latter.

In order to prevent this behavior, it may make sense to provide hierarchy where Risk Engineering Policies can be specified as:

schmidsi commented 6 years ago

As discussed offline I want to state some considerations/inputs here:

I'm more in favor of atomic/immutable setups which can get replaced:

Furthermore, immutability keeps a system much easier to reason about in general. But that is almost philosophic ;)

perhamgirl commented 3 years ago

With the re-architecture of v2, a version of MIP2 has been implemented in the form of upgradability. You can read more about it here https://medium.com/enzymefinance/fund-in-the-shell-e82c46a0a0fa

In summary, enzyme (v2) allows managers to upgrade policies at every new release cycle but there is a cooling off period for investors to opt-out if they do not agree to these policies.

Future TODO is to enable opt-in notifications for investors who want to be alerted when a manager is signalling an upgrade.