Incentivized testnet - guidelines and reward distribution

Summary

This proposal aims to create an incentivization layer to the current running SSV testnet by introducing rewards to both validators and operators.

The goal of the incentivized testnet is to scale up the current testnet and simulate “real world” dynamics between validators and operators.

The incentivization program asks the DAO to commit 32K SSV tokens, distributed for 4 consecutive months.

Motivation

The goal of a testnet is to thoroughly test all the different components of a network, from the node software all the way to network economics.

A testnet can be regarded as a public beta testing where all involved parties can freely engage and test the network.

Testnets were proven to be a necessary milestone for decentralized protocols before going mainnet.

This proposal aims to scale the current testnet by rewarding more validators and operators to join the network, alongside, introducing “real world” dynamics between operators and validators.
As rewards are introduced to validators (as a function of how well their operators perform) it will force validators to carefully choose their operators, requiring a higher level of service and overall network “health”.

Operators will be rewarded depending on the number of validators they are assigned to and the overall performance of those validators.

Mechanics

32,000 SSV tokens are to be allocated (from the DAO’s inventory) as rewards for this proposal.

A future starting date for the incentivization program will be announced, from that moment, every 2 weeks a new rewards distribution will occur on the xDAI network using a merkle distributor contract (uniswap’s example).

Each reward distribution is 4,000 SSV tokens.

The program will run for 4 months (8 distribution events).

Each reward distribution will have the following allocations:

  • 2,000 SSV tokens for validators
    • 1,400 SSV tokens for validators which are SSV holders
    • 600 SSV tokens to all validators (SSV holders and not)
  • 2,000 SSV tokens for operators
    • 1,000 SSV tokens for verified operators (verified operators include all operators with the verified/ dAppnodes tag)
    • 1,000 SSV tokens for all operators (verified and not)

Conditions

Validators

  • Anyone can register a 32 ETH validator to the SSV network.
  • Each validator performing with at least 80% attestation rate the previous 3150 epochs (~14 days) is eligible.
  • Abusive behaviour of the network (e.g. getting a hold of big amounts of goerli to register hundreds or thousands of validators) could result in exclusion from the incentivization program, decided by the community’s ambassadors and/ or Blox.
  • Rewards are calculated pro-rata, e.g. the network has 1,000 validators and a pool of 2,000 SSV as rewards then each validator receives 2 SSV tokens.
  • Rewards are claimable to the address that registered the validator.

Validators + SSV holders

  • All the above
  • At a predetermined time a snapshot of all SSV holders will be taken
  • SSV holders which also registered testnet validators are eligible, no minimum or maximum amount of SSV is required.
  • ALL_SSV is the sum of SSV held by all accounts that also registered a testnet validator.
  • ALL_VALIDATORS_SSV is the amount of validators registered by accounts that hold SSV.
  • SSV_AMOUNT is the amount an individual account holds
  • #_VALIDATORS is the amount of validators an individual account has registered.
  • Each account holding SSV and a registered a validator (or more) will receive a proportional amount of rewards, calculated as:

SSV_AMOUNT * #_VALIDATORS/(ALL_SSV*ALL_VALIDATORS_SSV)

Operators and Verified Operators

  • Anyone can register as an operator
  • Verified operators include existing operators with the verified/ dAppnodes tag in the testnet web app.
  • From the moment the incentivized testnet starts, the way to become an operator will be a DAO decision following this proposal.
  • Each operator receives a pro-rata reward for each validator committee he/ she is part of.
  • A reward is calculated only for eligible validators as described above.
  • An operator score is calculated as a % of the decided messages that operator was part of in a given period (SSV explorer will support operator score in the near future).
  • Rewards are claimable to the address that registered the operator.
  • Example: Operator 1 was part of 50 decided msgs for validator X out of 100 decided messages the past 24H. That operator will have a 50% score for that validator. An overall score for operator 1 will be the average score of all of his assigned validators.

Considerations

  • It is important to note that the testnet is still in development and could still have stability issues which might affect validator performance and subsequent rewards.
  • Rewards calculations will be done in a centralized way by the community ambassadors and/ or Blox. It’s the responsibility of every testnet participant to check for errors and present them to the ambassadors and/ or Blox.
  • Abuses of the testnet are not allowed and could result in exclusion from any current and future reward distributions.
  • The testnet and rewards are made by and for the community to test out the network as an important step towards mainnet, THIS IS NOT A GET RICH QUICK PROPOSAL. If you expect to get rich out of this, we advise NOT to join the testnet.
5 Likes

I don’t like that validator rewards are mostly restricted to SSV holders, as users in USA are restricted from SSV!

There is decent liquidity on Uniswap now, so US citizens can now buy SSV in reasonable quantities (~$10k) without too much slippage. And the recent DAO proposal to add $1 million more in liquidity will be executed very soon (this week), which will be additional help. So if you’ve been waiting to buy, I would definitely check it out :slight_smile:

1 Like

The gas fee on Uniswap for each swap is about 0.028 ETH, which I consider cost prohibitive.

Depending on how many trades you want to do you could use uniswap L2 solutions, you’d need to deposit one which will cost >0.01ETH but then each trade fee is a fraction of L1 fee.

Striker, I don’t totally disagree with your statements, but I don’t think it should matter much for this proposal.

For long-term investors that want to buy moderate quantities of SSV ($5k-50k), I think the current Uniswap market is sufficient. I understand that no one wants to pay high gas fees, but if you buy intelligently (i.e. patiently), you’ll only pay like 1-3% total from fees. That’s really not that significant, especially considering that the price is very volatile to begin with. And a bunch of extra liquidity was just added from the recent proposal, so slippage is fairly low.

I know compared to a CEX, that might seem expensive, and looking at it from a certain perspective, it is expensive. But my advice for you (and other US citizens) is to not worry about it so much. The price moved like 10% in just the past 24 hours, and that’s been pretty typical for the daily range. The value of SSV is expected to multiply several times as it grows, so in my opinion, it’s better to just pay the extra $100 now than to miss out on the growth by waiting. Part of the reason the price isn’t higher to begin with is because the project and markets are young and not fully developed. It’s still very early.

Therefore, I think the ability to buy SSV is sufficient for the incentivized testnet program. I think everyone has reasonable access to buy moderate quantities. And the purpose of this program isn’t to make giant airdrops and make people rich from owning SSV anyway.

Now… are those fees acceptable for the market long-term? No, of course not. It is not practical for a US citizen to buy a small amount of SSV from Uniswap, and those individuals that only want to invest like $500 or $1000 in SSV can’t right now without paying 10%+ in fees. But for this proposal, if they were only going to be holding a small amount of SSV to begin with, then they would only miss out on earning a few extra dollars from this incentivized testnet anyway.

With all that said, I do believe that we need to continue to improve the market. Getting the L1 Uniswap market going was just the very first step for the DAO, and the liquidity proposal was executed today, which is a great step. But I think it’s time to ask ourselves as a community: What do we want to do next to improve the market? Should we also start a L2 market and provide liquidity there? Maybe we should.

But that’s a separate discussion for another proposal or setting (feel free to start it). I think the incentivized testnet is fair enough in regards to the extra reward for holding SSV.

2 Likes

Can’t wait to see the testnet boosted by these incentives!

I seem to remember plans to incentivize validators to choose smaller well-performing operators as part of their basket. I am guessing this was intentionally removed?

Not removed. Still very relevant. Its just that it adds additional complexity to the program. We prefer to launch and make sure everything runs smoothly (reward distribution etc.) before adding more layer and complexity

3 Likes

Can you add clarification on what address will receive rewards for the validators? (the address that registers the validator vs the address that makes the deposit). There was a question about this on Discord, and it’s not intuitive for some situations, like for those who get goETH from the ethstaker bot, which makes the deposit for you.

1 Like

People start asking when the snapshot will be taken and if we will be pre-informed so that there is still some time left to buy SSV? Personally, I would prefer at least a 7-14 days notice period, so everyone has enough time to buy SSV and/or move (from CEXes) to the corresponding addresses from where they registered their validators.
This also gives a good opportunity to promote SSV before the snapshot is taken.

I think that taking the snapshots in more or less predictable block heights will make the most sense. But too much pre notice will leave room for abuse

2 Likes

Exactly like Adam mentioned, it will be predictable block heights.

1 Like

What about SSV locked in a Vesting Contract? Can Partners participate, and will you “snapshot” the vesting contract? This is under the assumption that the registering address is also the vesting address.

mm good point. Yes, we will need to manually do that but it shouldn’t be a problem.

1 Like

I noticed this issue a few months back and brought it up to Alon, at first he was reluctant but quickly changed his mind and confirmed to me twice that they will use the “contract address” (the one that signed the transaction delegating the validator to the operators, for reward distributions not the “deposit address” which sent the 32GöETH to the deposit contract. While a lot of rules have changed since then I would be extremely disappointed if this wasn’t still the case.

2 Likes

@fod @Voss-DAppNode seems like the best way is to take the registering address (the one registering the validator in the SSV contracts not the deposit address), is there any reason not to?
I don’t see why we should take the deposit address.

2 Likes

The registering address seems good. I saw that is stated in the proposal now. If it was in there before, I think I just missed it :slightly_smiling_face:

1 Like

I would like to suggest a cap on the amount of SSV that any account can hold, and above that it won’t increase their share of the Validator + SSV Holder pool.

Right now a single large whale SSV holder could effectively claim the entire amount allocated to the pool, if their wallet is a lot larger than the others combined.

That creates a big disincentive to new validators, who might want to buy 10 or 100 or 1000 SSV and participate in that pool.

I propose that anyone with more than 1000 SSV in their wallet is counted as having exactly 1000 SSV when the pro-rata rewards are calculated.

That exact target (1000 SSV) can be up for discussion. But it should not be so large than only a handful of people could reasonably be expected to reach it. Nor should it be so low that people could buy a handful of SSV and hit the cap.

4 Likes

I actually had the same idea, it does have a few caveats.

  1. Nothing stops a big whale from spliting his big account other than gas fees. If he can guarantee to take more rewards than the actual fee cost it’s still worth while.
  2. The actual APR for that big whale will be much lower than a smaller holder unless he registers a lot more validators which in that case we can actually catch him and exclude his account.

I think the question is, do we rather have one 100K account registering 1,000 validators or a 100 accounts each holding 1K SSV tokens registering 10.
(Say the cost for an erc20 transfer is $10, the split and then union of all sub accounts to the original one will cost 101002=$2,000 which will be much less than what he can expect to gain).

I’m working on a rewards simulator (it will part of this proposal’s V2). If we set a weight for each validator which is just the SSV amount * # of validators it will mean that a whale will actually need to also register a lot of validators to get a good portion of the rewards which will be considered abuse.
If he tries to split it to multiple accounts his overall rewards will be much lower in comparison to one big account registering a lot of validators.

3 Likes