Preface
This is a follow-up thread for the already published rewards distribution architecture decision record. Today we present an on-chain design implementing the chosen options.
Simple summary
The Lido protocol upgrade that re-stakes newly appeared rewards after the Ethereum Merge will happen to achieve rewards compounding.
Abstract
We introduce the rewards distribution mechanism which consists of a dedicated vault contract acting as a coinbase (i.e. fee recipient) for the newly appeared rewards on the execution layer (ex. ETH1), and an upgrade for the Lido
contract which affects the rewards distribution run, i.e. the Lido oracle beacon report handler.
The proposed rewards distribution mechanism should work as follows:
-
Node operators collect ether-nominated execution level rewards on a dedicated vault contract by setting its address as a fee recipient. To be precise, MEV rewards could be collected in the two ways: directly by setting the validator’s
feeRecipient
address as the coinbase address of the payload, or the payload builders may include an explicit transaction which transfers MEV rewards to thefeeRecipient
. So the proposed dedicated contract also accepts incoming ether (payable) transactions. -
The Lido contract withdraws all collected rewards from the vault, re-stakes it and mints new stETH only for protocol fee (10%) as part of the beacon chain (or consensus layer, CL) rewards distribution run
-
In the case of the non-profitable Lido oracle report don’t mint any new stETH (i.e. the protocol fee).
Motivation
Now the Lido protocol collects only Beacon chain staking rewards. These rewards are locked on the Beacon chain until withdrawals are enabled sometime later in 2022. After the merge, validators will start to receive two additional types of rewards: transaction fees (priority fee, to be exact) and extracted MEV which would be paid on the execution layer (EL).
Lido is likely to approach MEV using Flashbots ecosystem. The Lido Node Operators would use mev-boost as a middleware which allows to receive transaction bundles submitted by searchers. Searchers share the revenue with validators by sending part of rewards to the feeRecipient
address.
We propose to re-stake all collected EL rewards while minting only the protocol fee (10%) stETH as part of the beacon chain rewards distribution run. But don’t mint/distribute any protocol fee on the non-profitable Lido oracle report.
The proposed way brings rewards compounding, has a fast shipment time due to little impact on the existing distribution scheme. It’s also reasonably automated and self-governed. And finally, it fallbacks to the already adopted solution in case Merge hardfork is delayed.
The compound effect depends on the EL- and CL- APRs, but a long-term stakeholder generally gains additional interest rate increase every day. For example, if EL- ad CL- APRs are both equal to 4.5% (i.e., their sum is 9%), then a 1y-long stakeholder has an APY value near ~9.2%, and a 3y-long stakeholder has an APY value near ~9.6%.
The rewards distribution scheme is provided below.
Formal specification, Backwards compatibility, Security considerations
Please proceed to the GitHub lido-improvements-proposals
repo for the full spec text.
Links
-
Join the Flashbots Eth2 Working Group — Hasu on the Lido DAO research forum