Smoothly
Search
K

Overview

tldr:
Smoothly is a tool which gives home validators the ability to pool together their tips and MEV from block proposals which, on average, increases their reward and allows for more frequent distributions. Home Stakers change the fee recipient address in their validator client to our pool contract and can connect their wallet and claim their “share” of the rewards every 21 days.
Why would a an individual validator want to do this?
Validators receive various types of rewards for their contribution to the network. These rewards include Attestations, Sync Committee Participation, and the Block Reward (issuance) for proposals. When your validator is chosen to propose a block, in addition to the block reward, you receive the tips associated with that block, and these fees are sent to your “fee recipient” address. The tips also include MEV if you’re using an external builder. Since the magnitude of tips and MEV are highly dependent on network activity, individuals may want to “pool” their tips together with other validators in order to have a better chance of receiving tips from a block when network activity is very high and block space demand is at its peak. Linked at the bottom of this page is best statistical analysis I’ve seen on the topic, and was presented at Devcon in Bogota, Columbia by Ken Smith; an active contributor to Rocketpool. The tl;dr analysis shows that on average over a 5 year time span, validators in a “fee recipient” pool earn 41.6% more ETH than those not in the pool. Also worth noting in this analysis is that the smoothing pool outperformed single validators 9/10 times over that 5 year period.
The Situation:
Solo stakers are becoming a rare breed; there are a growing number of ways to stake your ETH that offer higher rewards with less technical knowhow. Although there are good actors like Rocketpool and Stakewise, a large amount of stake is held by centralized entities. There are three main incentives which large actors offer that separate them from the home staker community.
  1. 1.
    Issuing an Liquid Staking Token. By receiving an LST such as cbEth or stEth in exchange for your ETH that you’ve staked, you are essentially still liquid and could put that up as collateral to borrow against, lend, and generate a higher yield than vanilla staking at the protocol level. This is true.
  2. 2.
    Issuing a native token. By staking with Rocketpool and running your own node you get exposure to RPL rewards which increases your APY. This is true.
  3. 3.
    Reward Smoothing. By staking with Rocketpool, Lido, or Coinbase, the tips and MEV from block proposals can be distributed among all the validators in the associated pool. This gives you exposure to more block proposals which in turn gives you a higher probability of receiving a share of rewards from a block with a large amount of MEV. This is true.
Our Solution
We’re not here to issue another LST and we don’t have a token, but we are here to provide a tool to boost the average APY for home stakers in order remain competitive in the staking marketplace. We promote staking at home, running your own hardware, whilst giving you exposure to blocks proposed during high network activity and MEV events. Our protocol requires no additional software to be run on your staking machine; the only change you will have to make is regarding the fee recipient address associated with your validator. As an insurance policy (bond) we require each validator that registers to the protocol to deposit 0.5 ETH into the contract to be used as a mechanism for punishing the associated user if they act maliciously. The process goes as follow:
  1. 1.
    We’re live for Mainnet validators, you can connect to our contract using app.smoothly.money The wallet address with which the user is connecting must be either the deposit or withdrawal address. Once you’ve connected, the index associated with your validator(s) will auto-populate in the Dashboard. You will then check the box of the validator(s) that you want to register, check the disclaimer boxes after you’ve read them, and click the “Deposit ETH and Register” button. Note that the 0.5 ETH insurance deposit is per validator, not per user; so in order to register 2 validators, you’ll need to deposit 1.0 ETH as insurance.
  2. 2.
    After your validator is registered, it is then added to the pool index and its status will show “Pending”. During this time, that validator will accrue rewards, but they are locked in the pool until the validator proposes a block with the correct fee recipient address. After that condition is met, the validator status will change to “Active”, and all of the past rewards will be available for withdrawal. Additionally, once the status is Active, you’ll be able to claim rewards at 21 day intervals going forward. Every 21 days the contract state is updated by the oracle operators and the following key functions are performed:
  3. 3.
    The pool index is updated with new validator registrants and exits. Validator status is also updated to enable claiming of rewards.
  4. 4.
    Rewards are calculated for the previous 21 days and allocated to the pool participants as follows.
  • ( Us ): Users share of rewards
  • ( Tx ): Eth tx fees in pool
  • ( Vt ): Number of validators in pool index
  • ( Ve ): Excluded validators
  • ( Pe ): Penalties added to pool
  • (0.985): 1.5% of the pools tx

[Us=(Tx+Pe)(VtVe)×0.985][ Us = \frac{{(Tx + Pe)}}{{(Vt - Ve)}} \times 0.985 ]

Lets use the 21 days between October 31, 2022 and November 20, 2022 as an example rebalance period. During this period, there are 100 validators in the pool index and 3 validators excluded. During this period, 18.5 ETH is sent to the contract in tips from block proposals and 0.45 ETH sent to the contract in penalties. The users share of rewards for that period is equal to ETH.
Us=18.9597×0.9850.1915 Us = \frac{{18.95}}{{97}} \times 0.985 \approx 0.1915
c. Penalties are enforced and the ETH from those penalties is added to the pool. Penalties vary depending on the validator status and are detailed as follows:
Validator Status = Pending Activation
Penalty Type
Penalty Amount
Bond Affected?
Any Missed Proposal
Zero out rewards
No
Block Proposal with Incorrect Fee Recipient
Zero out rewards
No
Voluntary Exit (without exiting pool)
Zero out rewards and removal from pool index
No
Relay API Recognized incorrect Fee Recipient
Excluded from reward cycle
No
*A validators status changes to active when they propose a block with the correct fee recipient. ONLY ACTIVE VALIDATORS CAN CLAIM REWARDS.
Validator Status = Active
Penalty Type
Penalty Amount
Bond Affected?
1st Missed Proposal
None, excluded from one reward cycle.
No
2nd (and subsequent) Missed Proposal
0.15 ETH from bond and excluded from reward cycle until bond is topped up
Yes
Block Proposal with Incorrect Fee Recipient
0.5 ETH from bond and expelled from pool
Yes
Voluntary Exit (without exiting pool)
Exit request automatically.
No
Relay API Recognized incorrect Fee Recipient
Excluded from reward cycle
No
Fees
Although we consider this a public good, our intention is to make this project sustainable by charging a small fee to reimburse the costs that oracle operators incur. The fee is set to 1.5% of total rebalance and is split evenly between all oracle operators. The Smoothly team takes no additional fee.
Smoothly is intended to bridge the gap between today and when PBS (proposer builder separation) and MEV smoothing (or burn) are enshrined at the protocol level. These upgrades are being researched but my educated guess is they could be anywhere from 2-4 years away. There is more to come!