Preface
In the original soLido design, all assets added to Lido on Solana are currently distributed among 19 independent, high-quality validators that have demonstrated a desire to decentralize the network. Currently, to participate in the pool, validators need to create a voting account with 100% commission and concede the withdrawal rights to soLido program. The current implementation, raised some concerns from the community about how closed the current set is and the inability to delegate from the contract to existing public nodes. Furthermore, the current implementation brings additional costs to node operators, which makes the set less stable, especially in a bear market.
We are committed to the values put forward by the community, and these values are the basis of our vision to improve the validator set in Lido on Solana. Our goal is to create a sustainable, high-performance validator set for Solana.
With the upcoming changes in the proposal, we look to enable a healthy validator economy where new and existing validators can look to participate. By removing the need to maintain a separate node, our vision is that Lido will become a great entry point for those that are looking to join the Solana cluster for the first time (e.g. Wave 3 onboarding). We also look to expand the validator limit in the contract and give back the withdrawal authority to the validators with the goal of making Lido on Solana more decentralized.
As we outlined in our previous post, our vision to make the validator set more productive and sustainable stands on three principles:
- Make the validator set more economically attractive for validators by dropping the 100% commission nodes in favor of public ones
- Truly decentralize the validator network by simplifying entry and adding validators from other ecosystems.
- Ensure that the validator set works better for the Solana network
After extensive discussions with both the foundation team and the node operators it’s clear that some changes must be made to the original design of Lido on Solana to make it more appealing as a solution to customers. Below we will share details about the proposed changes and would like to hear your thoughts on this.
Changes overview
The changes outlined below were made with our three core principles in mind and aim to improve decentralization. This proposal looks to address the cost for node operators, increase the limit on the validator set with the goal of building a sustainable and robust validator set with a long term outlook in the Solana ecosystem. The first steps we propose is to make the following changes to the smart contract:
PR - Transition from fully dedicated nodes with 100% fee to public ones with a variable fee.
In the original design, adding a validator to the Lido set requires the setup of an additional node with a 100% validation fee. All the rewards go to the validator vote account from which the soLido program has withdrawn authority. A more efficient approach would be to make it possible to add public nodes to the pool with a validator fee limit. The rewards will be paid to the public validator vote account directly and the rest of the rewards will be in stake accounts that Lido on Solana governs. We believe that with this design, the Lido set will become more attractive to validators and help the product be more open and decentralized. We propose modifying the soLido program (to version 2) to allow validators with fees in a permissible range (e.g., 0% to 5%) to join the set. The exact range of acceptable fees for validators will be determined after a discussion with the current validators set.
PR - Increase the maximum number of validators.
The original design allows up to a maximum of 64 validators to the Lido set, which is associated with the Solana limit on compute budget and a limit on stack and heap memory which don’t allow a decent number of validators to fit in. A better approach is to expand the program’s capability and increase the possible number of validators to 6,700 (This figure was chosen to allow for future scalability of the product and was verified by stress testing). This will allow the validator set to scale and help the product become more decentralized.
Security considerations
Audit
Right now, we are at the end of an external audit, being conducted by Neodyme, of the new version of the smart contract. Details will be added to this thread when ready.
Upgrade script steps
The program upgrade will be conducted within 1 epoch to minimize the loss of user rewards as outlined below:
End of epoch n:
- Deactivate current validators
On epoch n+1:
- Propose program upgrade
- Propose migration​
- Approve program update and migration
- Add validators public nodes to the set
Action plan
Snapshot voting
A snapshot vote will be started next week to measure the DAO sentiment towards the proposed changes.
Setting the commission limit
We are already in discussions with current validators and plan to start a separate forum thread on September 23. A link to the discussions will be added here once created.
Integrations reach out
We will reach out to the protocols integrated with Lido that might possibly be affected by the introduced changes to make sure they are prepared for this upgrade before it’s applied.
Stay tuned,
Lido on Solana Team