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
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.
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.
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)
See paragraph summary above.
MIPXXcX: Smart Contract Components
See component summary above
MIPXXcX: Proposed Code (WIP)
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.