CSM Prover Bot Funding

TL;DR

One of the essential parts of the upcoming Community Staking Module (CSM) is the permissionless reporting of the facts of the validator’s withdrawal and slashing. To facilitate CSM operations and reduce the operational burden on the CSM Node Operators, Lido contributors developed a csm-prover-tool. This tool will run in the daemon mode to ensure timely reporting of the validator’s withdrawal and slashing.

It is proposed that the Gas Supply Committee compensate for transaction costs of reporting actions.

Technical details

The information about the validator’s withdrawal balance and the facts of it being slashed is crucial for proper bond accounting and timely penalization. Reporting of this information is done via permissionless methods on CSVerifier.sol contract. To prepare and submit report transactions csm-prover-tool can be used. This tool allows for 2 operation modes: daemon and CLI. While CLI mode is introduced for the purposes of one-time reporting by Node Operators, daemon mode is used to run the application on a permanent basis. Being launched in daemon mode, the application monitors the state of the Ethereum CL and submits reports about CSM validators being withdrawn or slashed.

Gas estimation

Each individual reporting operation costs around 300,000 gas. With the assumption about the gas price of 10 wei, each individual report will cost around 0.003 ETH. Assuming that the number of reported events for CSM validators will not exceed 500 per month, it is proposed to keep the wallet balance used for the csm-prover-tool at 1.5 ETH and top it up to 1.5 ETH if the balance drops below 1 ETH to ensure smooth operations.

Given the uncertainty in the expected number of possible withdrawals and slashings of CSM validators, it is not possible to estimate monthly costs at the moment.

Links

5 Likes

Could you please provide an estimate of the expenses for a year? Thank you!

1 Like

As mentioned in the post, estimating expenses is almost impossible due to uncertainty about the number of events to be reported. But let me try to play with the assumptions.

At the launch of CSM, it will most likely have a target share of 1% and a boosted exit share of 2%. This means that even if CSM reaches 1% allocation relatively fast, there will be no withdrawal requests for CSM validators to fulfill stETH withdrawals unless the protocol TVL drops by ~50%. Hence, we can assume that validator exits might only be voluntary.

If we assume that CSM will rapidly reach 1% of stake allocation, it will mean that, given the current TVL of the Lido on Ethereum protocol, there will be around 3000 CSM validators. Assuming that these 3000 validators will operate as average network validators in terms of voluntary exits, we can say that no more than 10% of the validators will exit voluntarily during the year. Hence, we can set an upper limit of the estimated exit requests count to 300.

Slashings can not be estimated, but we hope to see none or very few, so let’s omit them.

Finally, we have approximately 300 events a year, assuming a CSM share of 1%. With results in approximately 0.003 * 300 ~ 1 ETH a year.

However, this is a very rough estimation. But without a real world data it is the best I can come up with.

5 Likes

As a signer of the Gas Supply Committee, I fully support this proposal

2 Likes

Did I understand correctly that this daemon will only work when slashing?
Do we have current slashing statistics for the last year?

1 Like

This bot will also report withdrawals. Speaking of slashings there were no slashings in 2024 (for Lido). During the overall Lido operation, there were 2 slashing incidents (RockLogic, Launchnodes) that resulted in the slashings of 31 validators.

1 Like

The address to be used for the CSM Bot - 0xDCBDb89D30E921C73B496e9d20a61d283A5D2401

Confirmation signature Ethereum Verified Signed Message

You could calculate the worst possible apocalyptic :imp: scenario: All CSM validators either get slashed or withdraw, which is 0.003*3000 = 9 ETH. That seems to be the real theoretical upper bound.

2 Likes

Thanks for the idea. In case of slashing the bot will do 2 reports:

  • Slashing
  • Withdrawal

Hence, in the absolutely worst-case scenario, we will end up with 9 ETH * 2 = 18 ETH

1 Like

Hey @dgusakov! The bot balance has been replenished: Ethereum Transaction Hash (Txhash) Details | Etherscan

Thanks! ETH received