ADD: Protocol Insurance Fund
Current
The protocol doesn't have a dedicated insurance fund to protect LP capital. Third-party insurance is not ideal, since it creates a complex dependency outside the network. The Reserve does backstop IL Protection, but it has a 100 day limit, is only in RUNE, and is not a dedicated fund that can be set aside specifically.
In addition, the Protocol Reserve is a static capital account that does not earn yield.
Desired
Add a Protocol Insurance Fund that in the first instance is reserved to protect LP capital in unknown events.
The insurance fund is topped up by a small portion of the block reward (10%), and makes the protocol its own liquidity provider.
In addition, since it is yield-generating, the Insurance Fund can be used by the protocol:
- Be the LP of last resort for pools (will never remove liquidity)
- Provide a capital buffer to ensure that IL risk from Synths doesn't cascade back to the Reserve
- Continually buy up liquidity for the protocol, deepening the pools and increasing useability of the protocol
- Form a "liquidity black-hole" whereby, theoretically, the Insurance Fund has no upper bound since it always accumulates assets, and never goes down in value.
Implementation
By Block Height
Every 10 blocks, send the entire block reward to the InsuranceFundHandler which splits up the block reward pro-rata the depth of all active pools, and adds liquidity, setting the owner to 0 (the protocol itself).
The protocol is now a LP in each active pool.
To ever pay out to LPs in a pool, the liquidity units for the Insurance Fund are simply reduced (via a store migration, implying network adoption). The other LPs own more of the pool, which hopefully will cover the solvency loss.
By Memo
In addition, add the FUND memo (only for THOR.RUNE), which can invoke the same handler. This will be used to establish the fund in the beginning.
Ragnarok
If the pool is every nuked, assym-withdraw all the RUNE owned by the protocol and send it back to the RESERVE first, then complete the ragnarok.
If the pool is in standby with Insurance Fund assets, the last LP withdrawing causes the same action to happen (redeem the fund back to the reserve first).
Curation
Active pools should all be eligible for the Insurance Fund. Since the fund accumulates slowly (every 10 blocks, and split up over all pools), pools that drop in and out of standby won't accumulate significant Fund Assets.
If this is found to be a problem this can be revisited to apply a high level of depth curation.