MIP#: XX
Title: Throttled Surplus Buffer
Author(s): Matthew V Rabinowitz (@mrabino1)
Contributors:
Type: Technical
Status: Pre-MIP Discussion
Date Proposed: 2020-12-09
Date Ratified: Pending
Dependencies: N/A
Replaces: n/a
License: n/a
References
Sentence Summary
This proposal defines a MakerDAO Module implementation to throttle the Surplus Buffer with a known target over a period of time (either up or down) with a set frequency for changes.
Paragraph Summary
As the community continues to tweak the system, one attribute that is sometimes modified is the Surplus Buffer. DAI once over the Surplus Buffer the triggers the FLAP auction to go acquire MKR from the market. One can imagine that if the Surplus Buffer is set to 100MM DAI (and is full) that if governance then subsequently shifts to a materially lower Surplus Buffer of 2MM DAI, it would “slam” the FLAP auction causing a surge of MKR buying and thus huge inefficiencies with price. As it is administratively annoying to reduce the Surplus Buffer manually by governance for a set amount each week (e.g. 2MM decrease per week) as it would require the same vote over and over, this MIP proposes to modify the Surplus Buffer in an automated linear manner using three fundamental variables.
-
Time to reach the target
-
The target itself
-
Frequency of the reduction
From there the Surplus Buffer would then be modified (up or down) over time and with the frequency determined by governance. The frequency if set to zero would throttle the buffer down per block or could be set at a higher number if governance wants to have a more edgy reduction.
The above scenario is magnified as the system gets larger.
Component Summary
MIPXXc1: Time where the time to reach the target is defined.
MIPXXc2: Target where the Surplus Buffer will ultimately arrive at the time above.
MIPXXc3: Frequency the pace at which the above changes will be implemented (e.g. per block or per hour, etc)
Motivation
See paragraph summary above.
Specification
MIPXXcX: Smart Contract Components
See component summary above
MIPXXcX: Proposed Code (WIP)
Pending
MIPXXcX: Test Cases
-
Increase the surplus buffer with zero time with Y frequency
-
Increase the surplus buffer with X days time with Y frequency
-
Decrease the surplus buffer with zero time with Y frequency
-
Decrease the surplus buffer with X days time with Y frequency
MIPXXcX: Auditor Information and Report
The code has not been audited (as it has yet to be written).
Prior to any executive vote, the smart contracts domain team shall determine if an audit and bug bounty program is necessary.