Kirill Kutakov
8 months ago ·
14 min read
This article was co-authored with Collin Myers (@StakeETH on Twitter) and received editorial contributions from Lito Coen of Cryptotesters and Franscesco Renzi of Superfluid.
The crypto space is experiencing unprecedented growth and innovation. One only needs at the staking space to see that this is true - it hasn’t even been a month since ETH2 staking went live, but users are already presented with plenty of third party staking platforms. They range from the centralised exchanges like Binance to DeFi projects like RocketPool and StakeWise, and differ on a variety of dimensions.
Yet among all their differences, they have one thing in common: they all seek to find solutions to the necessary frictions that anyone encounters when staking ETH. What are these frictions?
For one, it’s the technical complexity of staking ETH that goes beyond the skills of an average user. Then there’s the 32 ETH deposit requirement which is increasingly becoming out of reach for ordinary users given the rapid increase in ETH’s price over the past month (currently $1,025 at the time of writing). Finally, there’s an ~18-24 month period of illiquidity for staked funds, implemented as a security measure in order to carry out the transition to Ethereum 2.0 in a safe and controlled manner.
Combined, these limitations can cut less sophisticated users out of the lucrative ETH staking market.
That’s where Ethereum 2.0 staking pools come in. They accumulate ETH from multiple users and operate the ETH2 staking infrastructure on users’ behalf, thereby enabling anyone to earn staking rewards, no matter their level of technical proficiency or deposit size.
Further, they attempt to alleviate the lengthy illiquidity requirement by minting ETH1 tokens that represent users’ deposits and rewards earned on the ETH2 chain. These staking tokens offer their holders an opportunity to exit from staking early by exchanging tokens for ETH on secondary markets like Uniswap and the ability to utilize their staked Ether in DeFi (as collateral in Aave, for example).
Yet the implementation of token models differs between the pools, which unequivocally leads to some serious implications for the end users. Lido’s stETH token, for example, is not identical to StakeWise’s stETH token and therefore should be priced differently on the secondary market. Meanwhile, RocketPool’s rETH token is a different animal than Stakewise’s stETH implementation, as is CREAM’s crETH2, Stkr’s aETH and so on.
Put simply, there’s a number of differences in the mechanics of tokens from different pools that may cause confusion and undesirable consequences for end users. However, these differences can be categorized and assessed in order to make an informed decision when deciding which staking pool to join. In addition, this comparative analysis lays the foundation for a valuation methodology for staking stokens , allowing for price efficiency across different Eth2 representation tokens.
Our main goal with this article is to help educate the community on the different types of token economics used across popular staking pools. We want to avoid the expensive errors that come from poorly understood products and hope the community contributes to the discussion on efficient pricing and arbitrage opportunities that can be found within the Eth2 pooling industry.
We can distinguish between two different structures: a single token design that aims to capture both the initial deposit and the earnings from staking within one token, and a dual token design that captures the deposit and the rewards separately as 2 different tokens.
Single token structure is based on a rebalancing/repricing token concept. This is the most popular design and is used by the majority of pools, likely because of its simplicity. By minting a single token to the user upon deposit, the pool seeks to capture the accrual of staking rewards and penalties within the same token. It can be done in 2 ways:
Staking rewards and penalties accumulated on ETH2 are reflected in a changing token balance (hence “rebalancing”), whereby each unit of staked ETH token shall be redeemed against ETH in the pool at a 1:1 ratio in Phase 1.5;
Staking rewards and penalties accumulated on ETH2 are reflected in the token price (hence “repricing”), whereby the amount of ETH that can be redeemed with one unit of the token in Phase 1.5 fluctuates with the amount of rewards and penalties of the pool.
It is best to illustrate the difference in these token mechanics through an example:
I. Balance change: Deposit 1 ETH in the pool and receive 1 staked ETH token back.
As rewards or punishments of the Pool accrue, the token’s balance of each participant in the pool changes accordingly i.e. 1.1 ETH in the pool = 1.1 staked ETH token balance. Hence, your staking earnings are captured within an increasing balance of the token in your address, minted to you by the pool. Upon Phase 1.5, all staked ETH tokens become redeemable for ETH at a 1:1 ratio.
This design is used by Lido Finance and Binance.
Note that the balance of staked ETH tokens is always equal to the amount of ETH in the pool; the exchange rate remains 1 throughout the staking period.
II. Price change: Deposit 1 ETH in the pool and receive a staked ETH token back at the concurrent ETH/ETH2 token exchange rate. The exchange rate given by the pool is determined by the ratio of ETH in the pool and the total token supply, and will change according to the amount of rewards and penalties accrued by the pool.
Suppose the exchange rate at the time of the deposit is 1 i.e. the pool hasn’t earned any rewards yet and 1 ETH = 1 staked ETH token.
As rewards and punishments of the pool accrue, your staked ETH token’s balance will remain unchanged, but now the claim that each unit of the token has on ETH in the pool will have changed. In other words, 1 staked ETH token = 1.1 ETH in the pool.
Hence, the price per staked ETH token changed from 1 ETH to 1.1 ETH and this reflects your earnings from staking. Upon Phase 1.5, you can redeem all staked ETH tokens for ETH in the pool at the final ETH/ETH2 ratio.
Such tokens are used by Rocket Pool, CREAM, Stkr and StaFi.
Note the change in exchange rate - it captures the growth in staking rewards earned by the user.
Despite using different mechanisms to reflect the accrual of earnings, single token designs have one thing in common: they bundle the deposit and the rewards in the same token. This means that whenever you buy or sell the token on the market or receive it from the provider upon deposit, you are receiving/selling both the deposit and any of the rewards that have accrued to the pool in the past.
We will save the discussion of implications of this design choice for a different article, but you should take into account design considerations when evaluating a pool as it will guide your APR expectations and your predictions about the token’s secondary market pricing.
In contrast, the dual token structure is based on a concept of two rebalancing tokens that reflect the deposit and the rewards separately.
Your deposit into the pool (what some like to call the principal on which you earn rewards) is reflected in the deposit ETH token.
Like other rebalancing tokens, it is minted upon deposit at a 1:1 ratio with the ETH you deposited.
When held in the address, the deposit ETH token doesn’t grow but instead accrues rwETH (reward ETH) tokens to reflect the growth of your stake in the pool, at a 1:1 ratio. Together, the sum of these tokens make up your overall staking balance, and can be transferred freely between Ethereum addresses and used in smart contracts in the same way as the single tokens.
Here is an example to illustrate:
I. Deposit 1 ETH in the pool and receive 1 deposit ETH token back (stETH).
As rewards of the pool grow, the deposit ETH token’s balance will remain unchanged, yet its presence in the address will trigger accrual of reward ETH (rwETH) tokens to reflect growth of rewards in the pool. For as long as the deposit ETH token is held, it accrues reward ETH tokens.
Upon Phase 2, all tokens will become redeemable for ETH in the Pool at a 1:1 ratio, regardless of whether they represent the deposit or the reward.
The only staking Pool to use the dual token design is StakeWise.
The dual token structure allows for a new type of hybrid instrument to be created that resembles bond dynamics, however different in that it separates the staking balance into instruments with different value accrual and cash flow expectations (principal and interest), allowing for more effective and flexible management of one’s stake.
For example, as the rewards are earned, they can be gradually sold in what effectively becomes a STRIPs market, to users who want exposure to interest from staking without having to stake themselves.
When it comes to the core principles of how staked ETH tokens work, the design choices of different pools become more subtle, but can have a significant impact nonetheless.
To become an effective solution for illiquidity, tokens must accurately reflect the value of your stake. This requires staking pools to always have the right amount of ETH in the pool backing their token emission. Pools do this by tracking the balances of their validators in the Beacon Chain and minting tokens against them.
Unfortunately, the ERC-20 contracts that are responsible for minting tokens do not reside on the same blockchain as the validators’ balances (ETH1 vs ETH2). The token contracts on the ETH1 chain cannot sync the balance of the validators from the Beacon Chain directly. Pools get around this limitation by using off-chain oracles, which work based on a similar principle to the now ubiquitous Chainlink.
The off-chain oracles allow communication with the Beacon Chain in the following way: first, an oracle operator must run both the ETH1 and the ETH2 nodes in order to communicate with two chains at the same time. Once both nodes are up, the oracle will collect information about the set of validators belonging to the specific staking pool from the Beacon Chain, and transfer it to the ERC-20 contract on the ETH1 chain. Once the information from the Beacon Chain is submitted to the ERC-20 contract, the number of tokens (or the exchange rate for minting new tokens) is updated in accordance with the change in the balances of the validators. The change can happen both upwards and downwards, depending on whether the balances grew (i.e. rewards were earned) or fell (i.e. penalties were incurred).
Unfortunately, off-chain oracles come with a downside: the entity that controls the oracle effectively controls the token balance. To mitigate this issue, pool operators require that several oracles submit the same information at the same time in order to update the token balance through the consensus mechanism, and distribute the oracles between independent entities to achieve a degree of decentralization.
Still, these solutions are not ideal and users are advised to pay attention to whether a pool runs their oracles in a sufficiently decentralized manner.
Example of StakeWise Beacon Chain Oracle arrangement
Every update of token balances in the ERC-20 contract involves spending gas, which in some cases can cost a small fortune. To optimize gas expenditure, most service providers prefer to update token balances daily. By most accounts, it is considered sufficient because daily gains from staking are rather low (ranging from 0.005% to 0.063% per day), making more frequent updates inconsequential.
However, daily updates may not prove sufficient in case of a massive slashing event. Slashing occurs whenever a validator commits one of the slashable offences, which causes large-scale loss of a validator’s balance in a matter of minutes (up to the entire balance in the most extreme cases). If many of the staking pool’s validators get slashed at once, not updating balances more frequently than every 24 hours will have disastrous consequences.
The issue here is that any user can track the amount of ETH in the staking pool’s validators by epochs (through a beacon chain explorer), and learn about a significant drop in their balance before it is reflected in tokens. Once users who hold staked ETH tokens become aware of the mismatch between ETH in the pool and the token supply, they will front-run the ERC-20 contract and dump their tokens on the secondary market to save their funds, leaving unsuspecting liquidity providers with a permanent loss and an outsized exposure to the slashed staking pool.
To avoid such a scenario, the pools could adjust their ERC-20 contract refresh rate to a higher frequency, balancing increased gas costs against the risks of mismatching the balances in case of slashing. In practice, it is unlikely that the pools would be ready to update the token balance more frequently (let alone every epoch!). Instead, they prefer to focus on mitigating the risk of slashing via improved security procedures, or prepare to increase the frequency of updates only in case a slashing event has actually occurred.
Therefore, users of pools and liquidity providers in general are advised to monitor the balances of validators belonging to the pool in which they stake or provide liquidity. In the future, services like Beaconcha.in are likely to offer subscription to notifications about slashing events, which would help dissipate the information about slashing faster and make the secondary market for staked ETH tokens more efficient.
All pools distribute the income and losses from staking proportionally to the size of the user’s deposit vs the aggregate pool deposit amount (pro-rata). This is done in order to avoid situations in which some users earn less or more than others due to the performance of validators they have been randomly assigned to. Assuming all pool operators act honestly, the major difference arises from getting randomly selected to propose more often, which includes a higher reward, hence socialization of earnings sounds like a fair thing to do.
However, socialization of rewards across pool participants still introduces a degree of unfairness into the staking process, especially when examining the activation queue for Eth2 validators (at time of writing it is currently ~19 days). As an example, the total amount of rewards that the validators earn is divided among all the token holders, while the tokens themselves are minted for the new users at the time of the deposit. Thus, even users who have just deposited their ETH will partake in the distribution of rewards (because they hold the token) regardless of whether their deposits have already been matched and activated on the Beacon Chain.
The implication is that the pool’s income is divided equally amongst all pool participants as if all the deposited ETH were earning returns, when in fact not all deposited ETH is productive, due to the current activation delay of ~19 days. As a result, the APR from holding the token will be different from the average APR of the pool’s validators, and users should be prepared for that.
Rewards are split between all the pool’s participants even when not all the deposited ETH has been activated
One user’s loss is another user’s gain. This situation has both pros and cons — everything depends on your point of view. From the perspective of users who have just made a deposit, such socialization is beneficial, because it allows them to skip the activation queue, which currently exceeds 3 weeks. Instead, they start earning from staking from the moment they deposit (yay!). At the same time, the pool’s losses from staking would also reach such users faster (boo!).
On the other side, everyone whose ETH has already been activated and is earning rewards would be happy to split the burden of penalties with the new token holders, taking less of a hit themselves. Yet, in the normal case of the pool operating profitably, socialization of income with those who have just made a deposit will reduce the profitability of the existing users relative to their deposits. Pools with the highest growth in deposits will suffer the most from this effect
Perhaps the easiest way to describe this interplay is that new users will effectively borrow from their own returns in the future to skip the activation queue and start earning rewards sooner.
In general, the faster the growth in the number of new deposits in the pool and the longer it lasts, the more drag the existing users will experience on their income. This drawback can be partially compensated by having greater liquidity for the token as a result of the popularity of said pool. Users should consider these factors when choosing who to stake with, while pool operators might look for ways to mint the tokens to new users only once their ETH has been activated.
The service fee of the pools is typically applied to the amount of rewards earned by them and ranges from 8% to 23%. The calculation of the rewards attributable to users takes this fee into account immediately, so the growth in the token balance will reflect the fee. This is an important detail to remember when judging the performance of different pools by the growth rates of their tokens.
For example, consider two staked ETH tokens from the two pools with the same mechanics and an identical performance of validators. The token from the pool with a lower fee will naturally grow faster than the token from the pool with a higher fee.
This feature is of greatest importance for the comparative assessment of the price of different tokens in the secondary market and their use in DeFi applications. The variability in net yield will drive differences in price of the different staked ETH tokens, where having a lower fee shall imply a smaller discount to ETH even at identical depths of liquidity.
There is a common misconception that staking pools automatically engage in re-staking of the rewards and thus growth is compounded. Sadly, it’s a myth — automatic re-staking is not possible within the current ETH2 specs, and users should be wary of any pool that claims to re-stake rewards natively. Re-staking and compounding by pools will only be enabled in Phase 1.5, when the withdrawal of rewards from the validators will become possible. We remain approximately 18 months away from that moment, so beware of false advertisements.
Despite the absence of native support, re-staking can be achieved manually by staking with pools that use the dual token structure. Users of such pools can sell their staking rewards separately from the deposit and reinvest the proceeds back into staking. They can even achieve compound returns as long as the reward tokens can be sold on the secondary market without a discount.
Compounding effect becomes truly powerful over long periods of time, but can even make a significant difference over shorter periods. The chart assumes APY of 10% in the network
This naturally throws StakeWise into the spotlight as the only operator with a dual token structure, but let’s not rush things: while we have a strategy for keeping the discount on reward ETH tokens to a minimum, we cannot guarantee it will work. Until the concept is proven, achievement of compound returns from staking before Phase 1.5 remains a challenge no pool has managed to overcome.
We hope that a common understanding of staked ETH token design choices and tokenization principles will spur thoughtful discussions about the merits of different staking pools in the Ethereum community, bring the desired efficiency to the staked ETH tokens market and protect stakers from unintended consequences of using poorly understood products.
In our opinion, some of the concepts that we discussed in this article warrant further analysis discussion, particularly socialization of validator balance changes and the frequency of token contract updates, because of the profound effect they can have on APR derived from using the pool.
Kirill Kutakov
8 months ago ·
14 min read
Latest Content
August 2021
June 2021
June 2021
May 2021
April 2021
April 2021
April 2021
March 2021
We are a multi-faceted team of crypto enthusiasts based in Berlin.
© 2021 cryptotesters UG
Products
How to buy bitcoin
Cryptocurrency exchanges
Crypto wallet guide
Crypto savings accounts
Defi lending rates
Crypto cards
Exclusive crypto deals
Ethereum staking
Resources
Articles
Reviews
Podcasts
Tutorials