Buy slashing insurance for stETH on Unslashed Finance

This insurance policy would ensure the staked ETH balance remains stable in the unlikely event of slashing or offline penalties that could happen to one or several Node Operators.

Overview

Unslashed Finance has designed a policy against slashing and offline penalties for the Lido DAO.

Slashing and offline penalties are “punishments” that validators incur when either they mistakenly double sign or when they are offline for long periods of time.

Problem

Currently, if a slashing event was to happen involving one or several validators, the balance of the slashed validator would decrease over a period of time (up to 2 months). This decrease would have an impact on stETH price which might lose the peg against ETH.

The same reasoning applies to offline penalties which could be the result of the validator facility taking fire or some other fat tail event.

These risks and their consequences could be mitigated using an insurance product that allows them to be covered.

Proposal

The policy here was designed specifically to cover these scenarios and the losses that might result from it. The policy focuses on a slashing rate of 5% that could happen over a period of 2 months starting from the moment the triggering event takes place.

The policy also covers offline penalties that amount to more than 1% of the staked ETH for a single validator or Node Operator and a 5% maximum limit.

The pricing for this cover will vary between 1% and 1.5% per year of the slashable amount and is justified by the history of Lido’s Node Operators who have been running validators over more than 20 PoS networks during the last 2 years.

Out of the more than 100 000 ETH being currently staked, 5 000 ETH would be slashable and the yearly cost would be 75 ETH maximum. Unslashed smart contracts being designed to work in cycles of 6 months, a deposit of around 37.5 ETH would allow to buy the cover and pay the insurance premium.

The non-consumed ETH at the end of the cycle will be automatically rolled over to provide insurance over the following cycle or could be withdrawn by the Lido DAO.

The Lido DAO will receive and hold Protection Tokens that will allow them to make a claim and get a reimbursement whenever a slashing event happens. The Lido DAO can stop the cover and get all non-used ETH back whenever they want, the premiums are being streamed in real-time and the model is a pay as you go model.

This policy will be subject to Cover Mining, which means the Cover bought by the Lido DAO will make them eligible to receive $USF tokens once these are released early march.

6 Likes

Great proposal!
stETH with insurance from slashing is much bigger thing than without.

2 Likes

That is a great proposal, just need to clear up some details.

  1. How much COVER will we get?
  2. How would we pay for it?

I think that we should start with a purchase of cover for 150000 stETH for half a year - we currently have 128k and it continues to grow, so getting a little extra would be prudent. That would cost us 56.25 ETH.

Insurance fund currently has 8.3 stETH received as staking fees (getting about 0.9 stETH/day and growing as rewards) - so we will be able to afford the cover from staking fees alone in ~a month. I think we should proceed faster than that.

My proposal is to purchase cover for 150000 stETH for 6 months by spending stETH from the insurance fund and topping up the rest by selling treasury’s LDO on the open market (a bit less than 28000 LDO by the current prices if done today; amount of stETH in treasury grows every day, though).

2 Likes

https://snapshot.vote/#/lido-snapshot.eth/proposal/QmRoepWm1zF6oVCKWgrwpRJv9xrUMW2hoCT6ukR2doRrTR

Made a signaling vote to gather feedback.

1 Like

We’re getting details on insurance coverage for Lido. Our signaling vote (Snapshot) considered a deal on 56.25 ETH to cover 150000 ETH in stakes from 5% slashing in half a year (details are outlined here: Buy slashing insurance for stETH on Unslashed Finance - #3 by vsh).

Current numbers have changed a bit. It seems like we could either buy slightly less than a half a year of the coverage for 5% slashing on 150 000 ETH for about 44 ETH or have ~190 000 ETH covered by the same policy for 56.25 ETH. Note that numbers are approximate, as the exact rate is calculated on internal Unslashed exchange and it fluctuates intra-day.

Which option sounds better? Personally I’d rather went for bigger coverage, as we’ve already got more than 144 thousands ETH staked.

1 Like

https://mainnet.lido.fi/#/lido-dao/0x2e59a20f205bb85a89c53f1936454680651e618e/vote/44

This is voting for purchase insurance from Unslashed. The insurance amount is 56.25 ETH (coverage for ~190K eth pool from 5% slashing). There are 3 transactions in a batch:

  1. DAO agent send 16 stETH to InsurancePurchaser contract
  2. DAO agent send 50000 LDO to InsurancePurchaser contract
  3. DAO agent call InsurancePurchaser.purchase to swap stETH and LDO tokens to ETH and sumbit 56.25 ETH to Unslashed contract and get Lido Premium tokens in return. The rest LDO and ETH goes back to the DAO agent.

How to check the vote #44

  1. Aragon voting and agent apps addresses (from GitHub - lidofinance/lido-dao: Lido DAO smart contracts):
    Aragon Voting: 0x2e59A20f205bB85a89C53f1936454680651E618e
    Aragon Agent: 0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c

  2. Open InsurancePurchaser contract on etherscan, read owner getter Contract Address 0x2Ca788280fB10384946D3ECC838D94DeCa505CF4 | Etherscan. The owner should be set to the aragon agent address.

  3. Open aragon voting contract on etherscan, fetch vote data through getVote getter. Pass the id 44 to the input and extract the script field from the resulting structure.
    Contract Address 0x2e59A20f205bB85a89C53f1936454680651E618e | Etherscan

  4. To check the voting script you need to generate execscript locally and compare it with a script fetched via etherscan for the vote with id 44.

  5. Check out the repo:GitHub - lidofinance/insurance-purchaser

  6. To execute script scripts/generate_purchase_exec_script.py follow the guide in the README GitHub - lidofinance/insurance-purchaser

  7. Locally generated and fetched from etherscan execscripts should match.

2 Likes

We’ve got enough cover to protect 196749.858268 stETH from 5% slashing!

1 Like