Exchange Rate
Exchange Rate
The exchange rate describes the rate at which you can convert ETH to mETH and back. This can be done either with the protocol directly, or with a third party swap.
Staking is the act of converting ETH to mETH and entering the protocol.
Unstaking (and Claiming) is the act of converting mETH back to ETH and exiting the protocol.
The protocol will always offer a "true" exchange rate — i.e., the rate given by a user's true share of the protocol value. There are no protocol fees (though see adjustment rate section below) when staking and unstaking. The exchange rates are given by these formulas:
Staking
Unstaking
Staking adjustment rate
There is a small adjustment applied to staking to stop protocol griefing. This is not a fee collected by the protocol (it goes to all existing stakers). More details of this can be found here Unstake Griefing
Consensus Layer Oracle
The exchange rate calculations necessarily rely on understanding the total amount of ETH controlled by the protocol. This ETH is split across the Execution Layer (where the contracts live) and the Consensus Layer (where staking happens).
As there is no native communication between these layers, we must run an Oracle in order to report how much ETH is on the Consensus Layer to the smart contracts, so that the correct exchange rate can be calculated. It is worth noting that future EIPs are being considered to address this issue.
The accuracy of the stake and redeem exchange rate is crucial for the integrity of mETH Protocol. If the mETH : ETH exchange rate is inaccurately quoted too high or too low, it can create opportunities for arbitrage that could negatively impact all mETH holders.
Risk Management Mechanisms
Current
Multiple Oracles with Quorum: Implementing a system where multiple Oracle nodes provide exchange rate data, and a consensus mechanism ensures the final rate.
Exchange Rate Bounds: Establishing upper and lower bounds for periodic exchange rate movements. The upper bound has predictable exchange rate growth expectations (global ETH staking APY) while the lower bound is less predictable due to slashing events. See Oracle Sanity Checks
Guardians: Introducing guardians who can monitor the exchange rate and pause various components of the protocol.
Request Finalization Window: Implementation of a time window (based on Oracle update time with some buffer) where withdrawal requests can be rejected, requiring users to resubmit their request. This would only happen in an emergency scenario such as where a major slashing event occurred.
Future Exploration
Merkle or ZK Proof systems: Verifying the Oracle exchange rate against Consensus Layer state.
Last updated