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 fortnightly. < — (for you Phiz).

Why would a an individual validator want to do this?

Validators receive various types of rewards for their contribution to the network. Most of these rewards are locked in the validator wallet until after withdrawals are enabled with the Shanghai hard fork (Done). These locked 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. Issuing an Liquid Staking Derivative. By receiving an LSD 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. 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. 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 LSD and we don’t have a token, but we are here to provide a service 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, and making your own decisions about MEV-boost relays 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, we require each validator that registers to the protocol to deposit 0.65 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. We’re live for Goerli validators to permissionlessly test, so stakers can connect to our contract using goerli-v2.smoothly.money. The wallet address with which the user is connecting must be the same wallet address that was used to fund the validator. Once you’ve connected, the public keys associated with your validator(s) will auto-populate in the table labeled “Unregistered Validators”. 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.65 ETH insurance deposit is per validator, not per user; so in order to register 2 validators, you’ll need to deposit 1.13 ETH as insurance.

  2. After your validator is registered, it is then added to the pool index and its status will show “Awaiting Activation”. During this time, that validator will accrue rewards, but they are locked in the pool contract 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 fortnightly intervals going forward. Every 14 days the contract performs a “rebalance” where a state snapshot is taken and the following key functions are performed:

  3. The pool index is updated with new validator registrants and exits. Validator status is also updated to enable claiming of rewards.

  4. Rewards are calculated for the previous two weeks and allocated to the pool participants as follows.

$Us = Users Share of Rewards$

$Tx=EthTxFeesInPool$

$Vt = Number Of Validators In Pool Index$

$$ Us=Tx/Vt $$

Lets use the two weeks between October 31, 2022 and November 14, 2022 as an example rebalance period. During this period, there are 100 validators in the pool index. During this period, 18.5 ETH is sent to the contract in tips from block proposals. The users share of rewards for that period is equal to 0.185 ETH.

$$ Us = 18.5 ETH/100=.185 ETH $$

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 Insurance 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 rebalance No

*A validators status changes to active when they propose a bock with the correct fee recipient. ONLY ACTIVE VALIDATORS CAN CLAIM REWARDS.

Validator Status = Active

Penalty Type Penalty Amount Insurance Affected?
1st Missed Proposal None, excluded from one rebalance No
2nd (and subsequent) Missed Proposal 0.15 ETH from Insurance and excluded from rebalance until insurance is topped up Yes
Block Proposal with Incorrect Fee Recipient 0.65 ETH from insurance and removal from pool index Yes
Voluntary Exit (without exiting pool) removal from pool index No
Relay API Recognized incorrect Fee Recipient Excluded from rebalance No

Fees

Although I 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 to cover this looks to be between 1.5% and 2.5% of all block proposals sent to the pool, assuming we can onboard at least 300 validators.

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!

Ken Smith - Does it Make Sense to Aggregate and Average feeReceipent Rewards Using a Smoothing Pool_.pdf