Context
Morpho Labs believes that adding granularity to governance-controlled functions like market pausing or asset depreciation, similar to the ones present in Aave and Compound, could improve the resilience of the protocol.
Proposal
The Morpho Labs team would like to give the governance more granularity over its power on the protocols.
Currently, a market can be “partially paused”, preventing any supply or borrow, or “paused”, preventing any interaction with this market. We propose partitioning these two pausing categories into 6. Governance would be able to pause supply, borrow, withdraw, and repay functions for each market, as well as pause liquidators from seizing or repaying any specific asset. Thus, governance can disable certain functions without applying inappropriate restrictions. This power would be given to the Morpho operator 3/5 multisig. (see Zodiac and Progressive Decentralization).
Also, we would like to add a native market deprecation feature, very similar to Compound’s one. When the market would be set as deprecated, all the debt on this market could be instantly liquidated, leaving the market with 0 borrowers. Only the DAO multisig and the Reality Module would have the rights to trigger these functions.
Finally, we would like to add a way for the governance to manually increase peer-to-peer deltas on a given market. This function would allow to put some liquidity back on the pool, in constant time, as there would be no need to demote anyone. It would be useful in a market deprecation process, or when the peer-to-peer matching mechanism cause problems for example. The Morpho operator would receive the access to this function.
Implementation
To be able to pause the 6 different scenarios granularly, we need 6 new storage variables. We also need one storage variable for the deprecated status. In order not to break the previous contract’s ABI, we added a new storage slot at the end of the existing ones, which contains a struct with those 7 variables.
At the moment, the two pause statuses are given by two variables per market: isPartiallyPaused
pausing the supply and borrow functions, and isPaused
pausing the supply, borrow, withdraw, repay and liquidate (both on the collateral and on the debt) functions. The proposed changes would mean that variables isPaused
and isPartiallyPaused
would no longer be used. They will be set to false, and never read nor written again by the protocol. We are calling both on-chain and off-chain integrators to give their opinion on this choice.
We also added 7 governance functions to set those 7 variables, as well as an increaseP2PDeltas
function to increase the peer-to-peer delta by a given amount, on a given market.
Two external security audits by Pessimistic and Spearbit are being finalized, we will share the reports as soon as they are ready.
Next steps
After a discussion with the community, Morpho Labs would open a vote on Snapshot. If it passes, the Morpho association would upgrade both Morpho-Compound and Morpho-Aave with the new contracts implementing these new features. It would also update the Zodiac Roles module, to grant the pausing rights to the Morpho operator, as discussed in the proposal.