Marinade delegation strategy: A guide for validators
Marinade has an important and symbiotic relationship with the validator community. Marinade needs strong, geographically-distributed validators to ensure the decentralization of Solana and validators can benefit by receiving delegated stake from Marinade. Marinade currently delegates stake across over 450 validators and aims to incentivize the growth of the validator set through distributing even more SOL stake as it grows.
/!\ Important note: Marinade's delegation strategy has been updated since this article. Please refer to the documentation as we update this article.
Marinade has an important and symbiotic relationship with the validator community. Marinade needs strong, geographically-distributed validators to ensure the decentralization of Solana and validators can benefit by receiving delegated stake from Marinade. Marinade currently delegates stake across over 450 validators and aims to incentivize the growth of the validator set through distributing even more SOL stake as it grows.
Transparency is everything with Marinade and so making sure the validator community understands exactly how its stake delegation functions is vital. For this reason, all delegation strategy code has been made open-source via Github.
The overall delegation strategy is summarized concisely in the the Marinade documentation:
Marinade follows the Solana Foundation strategy to spread the stake among the long tail of high-performance, low-commission, non-concentrated validators, in order to increase decentralization and censorship resistance for Solana.
This means Marinade avoids the largest, dominant validators and solely dedicates its stake capacity to the rest of the validator community, organically encouraging and supporting more new validators. The aim is to strike a balance between ensuring value for Marinade users and the wider mission of driving decentralization and ensuring a healthy, censorship resistant Solana network.
Marinade’s delegation strategy distributes stake outside the Max Security Group to ensure greater censorship resistance of Solana.
How are validator delegation scores calculated?
In order to allocate its stake across the best validators outside the “security group”, Marinade first utilizes the following metrics to calculate a validator “score”:
- Performance (APY)
- Commission
- Delinquency
- Location / Decentralization
- Version of the node
The open-source code used to calculate the score is based on a fork of “stake-o-matic” from the Solana Foundation and is published to the Marinade GitHub repository, alongside epoch-to-epoch results and a SQLite database with historical score data. View on Github.
The purpose of the score is to ensure Marinade stake is shared across validators that help to achieve the joint goals of increasing Solana network decentralization and securing yield for mSOL holders. The score system is used, in conjunction with some additional processing, to automatically distribute Marinade stake across the validator set in proportion to the scores at the end of each epoch. As Marinade users stake and unstake, the Marinade system automatically distributes new unallocated SOL, as well as performing unstake operations if necessary, to ensure stake is distributed appropriately across validators.
The validator scoring process that is completed every epoch follows these steps:
Credits (in relation to all validators on the blockchain):
Delinquency is also taken into account, and delinquent validators are always set for unstaking, regardless of previous epoch scores.
*APY is also used for informational purposes.
These metrics are used to ensure that Marinade is delegating stake to high-performance validators and any significant outliers have their stake removed. Marinade has a duty to ensure its users are supporting validators that are successfully voting on blocks and passing on acceptable staking rewards. These calculations are completed twice during each epoch, at both 24 and 7 hours before the estimated end of the epoch, and the resulting scores are uploaded on-chain.
Score-based staking operations
Once the scores have been calculated and adjusted, the bot responsible for staking and unstaking operations performs a final set of adjustments to the on-chain scores in order to find a good balance between staking and unstaking operations, depending on the available stake to distribute or to unstake. Even if Marinade has an overall positive stake delta, with newly committed SOL from users ready for staking, it may still be necessary to perform some unstake operations in order to ensure the overall allocation of stake across the validator set remains appropriate.
Firstly, any validators that are noted to be “cheating” the system or attempting to adjust their fees just prior to the end of the epoch, are blacklisted triggering an immediate unstake process.
Scores are then checked against the current Marinade stake held by each validator. If a validator with a new score of 0 has more than 0.45% of the overall Marinade pool delegated to them (from previous epoch performance), it is set for unstaking.
In addition, if a validator has more than 250% of the stake they should have from Marinade according to their score, they are also set for unstaking.
An exception to these two unstaking rules is made if Marinade represents more than 20% of a validator’s total stake, in order to ensure a validator doesn’t suddenly have a large proportion of their stake suddenly removed, potentially making them economically unviable. Marinade wants to support validators, not make it more difficult for them!
There are also some caps in place for practical reasons, with the largest amount of the overall Marinade pool that can be allocated to a single validator capped at 1.5%. A stake delta cap mechanism is also used to avoid very large stake changes from one epoch to the next. The amount of stake received by a validator for an epoch will seldom exceed 0.1% of the overall stake currently delegated to all Marinade validators. The only exception to this is if a validator receives a score which would give them over twice as much SOL as they already receive from Marinade, in which case their score is adjusted to 80% of its previous value instead and they are exempt from the 0.1% cap.
It is important to note that receiving a “0” score does not mean a validator will lose all of its stake from Marinade, but it will not receive any new stake in the next epoch and may be subject to unstaking if Marinade receives large unstake orders from its users.
How validators can optimize for Marinade
There are a number of steps a validator can take to increase their score and as a result benefit from additional Marinade stake. The focus should be on ensuring each scoring parameter is considered independently, a great deal of which will be focused around hardware and software optimizations.
A high-performance validator will be necessary to achieve sufficient credits and resulting APY, but validator operators should also take care when setting commission rates as if these are too high, they may effectively reduce APY to such an extent as to heavily impact their score. Vote credits and total stake are the key metrics in the Solana system that dictate how much of the overall epoch “inflation” each validator receives. Independently sourced stake will ultimately increase a validators own profitability but Marinade measures such performance by APY, so smaller new validators without large pre-existing stake commitments are not necessarily penalized, provided they can achieve good results across scoring metrics.
Ensuring validator software is kept up to date, and avoiding delinquency are some of the most obvious requirements to ensure a good score, but another optimization worth exploring is decentralization, which can potentially be improved by checking validators.app data centers list and trying to use a lower population option, provided it can still offer sufficient hardware performance such that other metrics don’t suffer.
It should also be stated that attempting to “game” the scoring system with last-minute commission changes always results in blacklisting and completely removes the chance to get Marinade stake, so it only ever pays to be an “honest” validator.
Validator best practices and optimizations are a continually evolving challenge as Solana itself grows, new validators come online and competition increases. There are a number of validator communities that discuss such practices and in many ways the current landscape is quite cooperative and supportive, with a number of valuable resources available from existing validators as well as the Solana Foundation guidance.
Marinade continues working closely with the validator community and strives to onboard their feedback. Validators are invited to join the #Validator channel in the Marinade Discord to discuss the delegation strategy and collaborate on the future of validating stake on Solana!
About Marinade
Marinade.Finance is the first non-custodial liquid staking protocol built on Solana. Stake your SOL tokens with Marinade and receive mSOL (“marinated SOL”) tokens in return that can be used in decentralized finance (DeFi). mSOL is the most widely integrated collateralized version of SOL. The price of mSOL goes up relative to SOL each epoch, with rewards being accrued into your stake account.
Marinade’s delegation strategy stakes to 400+ validators that are selected automatically by an open-source, fair formula based on performance, commission, and decentralization.