Abstract
With this SLURP comes the definition of an Insurance Pool for the stake.link protocol. The goal of this pool is to insure all stLINK slashing events resulting from the underlying Chainlink Staking v0.2 economic protocol.
Rationale
With the stake.link protocol growing in both LINK staked and TVL, it’s important to consider how an insurance mechanism would be defined that both incentivises those providing collateral as insurance and the end-users who stake within the protocol. Even though the risk of slashing events within stake.link and v0.2 are very minimal due to only securing the ETH/USD feed, we need to prepare and plan for expansion with a highly collateralised insurance pool that mitigates any potential risk to encourage further growth.
If any stLINK slashing event occurred, this would result in a negative rebase of stLINK which would lower the amount of stLINK held in all wallets based on the amount slashed. This SLURP is to define an Insurance Pool so if a negative rebase did occur, then LINK would be transferred to the LINK pool resulting in a positive rebase which would negate the previous losses.
Specification
The high-level specification of the insurance pool is: allow those who LP for SDL or stLINK pairs to stake their LP tokens in the insurance pool to receive incentives. On any slashing or exploit event, the protocol would raise a claim event where an amount of LP tokens that equaled the amount lost would be redeemed and then reimbursed to stakers, mitigating any loss.
Currently, the stake.link protocol has ongoing incentives for two secondary markets, they are: stLINK/LINK on Curve and SDL/LINK on Uni v3. The insurance pool would seek to unify and simplify all incentives governed by the protocol, moving incentives from directly within these protocols to only the insurance pool.
Even without the insurance mechanism, this provides multiple benefits.It simplifies governance of the amount of SDL incentives per epoch; it completely negates the engineering complexity of working with numerous protocols on providing incentives while making the provision of new incentives for new pairs much easier.
The benefits above were apparent with the migration of SDL/LINK liquidity to Uni v3 as there were unknown at the time issues with incentive claiming on incentive pools while there not being any “official” UI within Uni v3 that allowed LPs to directly stake their NFTs. This resulted in 2+ weeks of engineering resources from the stake.link core contributor team, taking time and spending money on building out features for 3rd party protocols that shouldn’t be needed.
To add the insurance mechanism on-top is relatively trivial, while incentives would be adjusted over time to reflect the current risk of providing insurance. This mechanism is relatively similar but builds on top of the insurance modules seen throughout DeFi.
Insurance Pool Parameters
Within the insurance pool there would be several parameters:
- Whitelisted LP/NFT tokens
- % split of SDL incentives between LP token buckets
- Overall SDL rewards per second distributed across all buckets
- Maximum % of tokens that can be redeemed per claim
- Withdraw period
The parameters would need to be defined and re-evaluated for every incentive epoch or every time a new LP/NFT token gets whitelisted within the pool. These parameter reviews would replace proposals such as SLURP-10, replacing incentives to 3rd party protocols in favour of the insurance pool.
Since the insurance is provided in the form of liquidity provision, it’s important to set a maximum percentage threshold of the tokens that can be redeemed per a given claim. If the threshold was too high, then the protocol would be liquidating significant amounts of platform liquidity which would have a large overall impact on protocol health.
A withdrawal period would need to be defined in the Insurance Pool to avoid a mass exit event if a slashing event did occur. The withdrawal period would need to be long enough to ensure that the insurance pool can process the claim before people exit but short enough to not deter staking into it.
Slashing/Loss Events
In the case of any slashing/loss event where the insurance pool is required to make up losses, the existing council governance process will be used to determine whether a claim from the insurance pool is valid. Claims will be raised on the governance forum, then voted on by the council members.
If the claim is deemed to be valid, then the required amount of LP tokens from the pool will be withdrawn by the protocol multi-sig for them to be redeemed and then transferred into the required contracts to mitigate losses. Since the redemption of the LP tokens would be dual-sided, for example SDL/LINK, it would be preferable for the LINK side of the LP position to be used solely to mitigate losses versus requiring to swap SDL to LINK. In the case of only using single side tokens, the remaining unused tokens would be transferred back to the insurance pool and distributed proportionately.
A manual process rather than a contract based redemption has been chosen as the redemption and transferring of tokens would add complexity and risk to the contract implementation that in my opinion is not worth the benefit as the tokens will be managed and transferred by the protocol multi-sig which consists of numerous Chainlink Node Operators.
Node Operator Slashing
The Insurance Pool would build upon the slashing mechanisms introduced with the stake.link upgrade for the v0.2 staking implementation. Currently, if there’s a slashing event for a Node Operator part of the stake.link protocol, that NOP would not earn any stLINK fees until the delta of the slashing versus fees earned since is positive. To expand on that, the Insurance Pool would add the following:
- Allow to define NOP stLINK fee slashing for a specified period
- Transfer NOP slashed stLINK to the Insurance Pool
- Slash vesting NOP SDL and transfer to the Insurance Pool
By doing this it creates a balanced relationship between those providing insurance and the Node Operators. Improving and enforcing the crypto economic guarantees for the Chainlink Staking protocol.
The amounts to be slashed and whether stLINK/SDL or both are slashed would be determined within the claim raised. Upon the passing of this proposal, we would also specify some form of algorithm and guidelines for NOP slashing in more detail to avoid any imbalances between slashing events if occurred.
Development & Release Process
The development of the insurance pool at the time of writing has not started, I think it’s important for this to be raised first to gauge opinion that has the potential to dictate development as this SLURP marks a rather significant addition in the protocol itself and requires the opinion of those currently providing liquidity and earning incentives.
If passed and developed, a further SLURP would be raised closer to the time that would attempt to ratify the parameters listed in the section above as it’s currently too early to do so.
Conclusion
I look forward to reading the feedback on this proposal, as if passed and released, it marks a large milestone in which the protocol is insured against losses based on insurance pool size, installing user confidence. Even though the risk of slashing is very minimal now, we’re still in the early stages and it’s important to develop solutions to these problems before staking is considerably expanded.