Lido on Solana upgrade announcement and timeline

We are happy to announce the upgrade of the Lido on Solana program from December,6 to December, 8.

This upgrade focuses on validators in order to enable a more healthy validator economy: allowing operators to use their existing public Solana nodes with a commission of not more than 5%.

The proposal has successfully gone through Lido DAO voting , and the program code was audited by Neodyme.

Why

The reasoning and other details on this update are described in this forum post. This update is mainly aimed at changes in how the contract work with validators, these are the main points:

  • Validators will not need to set withdraw authority to Lido anymore and they will receive block rewards and staking rewards in SOL (instead of stSOL) to their accounts directly.
  • There is no need for 100% commission nodes, so node operators can use their public node in the Lido set or make their existing Lido node public.
  • Set the maximum node commission to 5% to be eligible to receive a delegation from Lido on Solana.

As per our vision of a decentralized validator set, we look to enable a more healthy validator economy where new and existing validators can look to participate. Our goal is to create a sustainable, high-performance validator set for Solana.

Rewards distribution model change

As an expected result of the changes above, the staking rewards distribution model will change slightly.

  • In the current version of the smart contract, all the rewards are distributed simultaneously and precisely between node operators (5%), the DAO treasury (4%), the developers (1%), and the stakers (90%).
  • After the update, the 5% (max, it can be set lower) goes to the node operator, then from the remainder, the DAO treasury (4%) and the developer (1%) fees are subtracted. The remaining share goes to the stakers.

As a result, the share of the treasury and the developer decreased slightly, the validator’s share remains the same, and the staker’s part (APY) increases slightly.

Update timeline

All these changes were published as proposals (main contract changes and max commission setting) on the Lido research forum. We also launched a DAO voting concerning these changes, which ended successfully on the 25th of October.

We divided the update process into 3 main phases: preparation, program update, and post-deployment phases.

Preparation phase

Duration: 1 epoch;
Impact: none;

During this phase, we will deactivate all the validators. This will be achieved by creating a special transaction and having multisig owners sign it. Validators will be deactivated at the start of the next epoch.

We plan to execute this transaction at the end of the epoch, so for most of the epoch, everything will work as expected.

Program update phase

Duration: 1 epoch;
Impact: Unstake commands can’t be performed, validators are not voting, and not getting any rewards.

During this phase, all the stake is stored in Lido on Solana reserve account, and all the validators are deactivated and not voting. During this phase users still can stake their SOL and get stSOL, but obviously can not unstake. They can operate their stSOL in DeFI apps without any issues though.

In this epoch, we will update the program and bring it to life by creating a special transaction. Multisig owners will check and sign it. The updated program will start working on the next epoch.

During this epoch, validators are to configure their nodes to participate in the Lido pool with new requirements (public node, ≤5% commission). At the end of this phase, we create another transaction that will add the validators to the Lido on Solana pool on the next epoch.

Maintainer bots also have to update their program and restart in this phase too.

Post-deployment phase  

Duration: 2-4 hours
Impact: none

In this phase, everything starts working as intended. We will check if the validators’ nodes work correctly, vote, and get rewards. We also going to run the final tests and make sure that all the partners work correctly with our updated CLI, staking and unstacking operations can be performed.

After this phase, the update concludes.

Summary

As an expected result of the program update process, we are losing rewards for one epoch, and users can’t perform unstake operations during the program update phase.

This will result in an insignificant APY decrease, but we consider this a reasonable loss and hope to compensate for it with a better-performing validator pool and small changes in the rewards distribution model, as described in the DAO voting proposal.

Documentation and guides