What is Loss-Versus-Rebalancing (LVR)?
Providing liquidity to automated market makers (AMMs) like Uniswap has become one of the most popular ways to earn yield in crypto.
While other yield-bearing methods like staking and lending depend on protocol economics and aggregate market demand, there is always alpha in providing liquidity. Between new token launches, incentive programs from ecosystem grants, and ever-evolving AMM models, liquidity providing is one of the most mature sectors for earning returns on crypto assets.
However, liquidity providing has one major downside: it is subject to a pernicious form of price exploitation known as loss-versus-rebalancing (LVR).
LVR is a form of maximal extractable value (MEV) responsible for more price exploitation than all other forms of MEV combined. Many liquidity providers haven’t even heard of LVR, but it costs them 5–7% of their liquidity, resulting in hundreds of millions lost each year. In fact, when accounting for LVR, many of the largest liquidity pools are not profitable for LPs at all.
How can this be? Let’s examine how liquidity providing works to learn what loss-versus-rebalancing is and where it comes from.
What is LVR
First coined by a team of researchers from Columbia University, LVR is a form of arbitrage that occurs whenever an AMM has an outdated (stale) price in comparison to some other trading venue.
Arbitrageurs exploit this difference by trading from the AMM to the more liquid exchange (usually a centralized exchange like Binance), correcting the arbitrage and extracting value from LPs in the process.
To better understand LVR as a process, however, we first need to understand the nature of automated market makers, as well as the pre-cursor to LVR — impermanent loss.
The CF-AMM Design
Most AMMs (such as Uniswap) are examples of constant function automated market makers—CF-AMMs.
These AMMs take in two assets and automatically re-calculate prices after each trade to ensure ample liquidity at all times. As one asset gets depleted, the other must trade at a higher price in order to maintain a constant ratio where the value of all “A” tokens in a pool is equal to the value of all “B” tokens.
CF-AMMs use the constant product function x*y=k to calculate the ratio of assets, where x and y are the two tokens and k is the constant maintained. Thus, all trades on a CF-AMM can be mapped on the constant product function curve:
Liquidity Positions
Let’s look at an example of providing liquidity which will help illustrate the design (and shortcomings) of CF-AMMs.
Let’s say that the price of ETH is $1,000 and we have 2 ETH worth $2,000 that we would like to earn yield on. We can start by providing liquidity to, say, an ETH-USDC pool. In order to do this, we must first split the value of our holdings into 50% ETH and 50% USDC (remember, most AMMs require LP positions to be split 50/50 between your two assets.)
LP Position:
1 ETH $1,000 USDC
Total value: $2,000
Over time, we earn LP fees on this position for our service of providing liquidity to traders. So our $2,000 is slowly growing by just sitting in a liquidity pool… sounds great, right?
Loss-Versus-Holding (Impermanent Loss)
In our example, we’re making free money off LP fees up until the moment ETH starts to move in price. This is where we risk incurring “impermanent loss” which can be thought of as the opportunity cost of our LP position compared to what we would have had if we just held the assets (without putting them in a liquidity pool). That’s right—LPing is not automatically better.
Let’s take a look at how this shakes out for our particular example:
In an extreme scenario, let’s say the price of ETH jumps from $1,000 per ETH to $4,000 per ETH. The liquidity pool will adjust so that our assets are still 50% ETH and 50% USDC.
To calculate the new position, we use the formula x=√(p1ETH∗p2ETH), where p1ETH represents the original price of ETH and p2ETH represents the new price of ETH. Solving for x will give us the updated (dollar-denominated) value of each asset after the AMM re-calculates prices back to 50/50 in this new price environment.
The sqrt(1000*4000) = 2,000, meaning that the dollar value of each asset in our liquidity pool will be $2,000 after the recalculation. This leaves us with $2,000 USDC, and 0.5 ETH in our liquidity pool, for a total of $4,000. We started out with $2,000 and we end up with $4,000 — doubling our money.
Original LP Position:
1 ETH $1,000 USDC
Total value: $2,000New LP Position:
0.5 ETH $2,000 USDC
Total value: $4,000
That’s great! …until we look at what we could have made if we had just held our 1 ETH and $1,000 USDC without ever putting them in a liquidity pool in the first place.
If we had held, our 1 ETH would be worth $4,000, which in addition to our original $1,000 USDC would leave us with $5,000 net. That’s $1,000 more than what we end up with through the liquidity pool!
Original LP Position:
1 ETH $1,000 USDC
Total value: $2,000New LP Position:
0.5 ETH $2,000 USDC
Total value: $4,000Holding Position:
1 ETH $1,000 USDC
Total value: $5,000
This difference is known as “divergence loss,” or, more colloquially, “impermanent loss.”
It’s “impermanent” because if the price of the assets were to return to their original value ($1,000 per ETH in our example) the loss would be reversed and the value of our LP position (excluding yield earned) would be equal to the value of a portfolio where we had just held. So impermanent loss can also be conceptualized as “loss-versus-holding.”
If we begin thinking about counterfactual scenarios where rather than LPing, we had taken some other course of action with our money, a world of possibilities opens up. The first, “loss-versus-holding,” we just covered. The second, “loss-versus-rebalancing,” is the topic at hand that we now turn to.
Loss-Versus-Rebalancing (LVR)
In the case of impermanent loss, if an asset begins and ends a time period at the same price, there is no loss incurred by the LPs. However, it turns out that there is a portfolio scenario which would have made money even in the case of an asset beginning at and returning to the same price. This would be a “rebalancing” portfolio.
Rather than leaving your money in an AMM or simply holding, in a rebalancing portfolio you trade your way up the price curve when it’s going up and trade down when it’s going down, effectively “rebalancing” your portfolio in real time.
“Loss-versus-rebalancing” is the difference in value between an LP portfolio and a rebalancing portfolio.
Let’s look at another example.
LVR in numbers
Say we start with an LP position of 1 ETH and $1,000 USDC.
Over time, the price of ETH jumps from $1,000 to $2,000. Using the x=√(p1ETH∗p2ETH) formula, we can calculate that our new LP holdings would consist of 0.71 ETH and $1,414 USDC, meaning we sold 0.29 ETH for $414 during the AMM recalculation. This gives us a total portfolio value of $2,828 and a loss-versus-holding value of $172.
After some more time, the price of ETH goes back down to $1,000 where it started. Here, the values of both our LP portfolio (minus fees) and our holding portfolio are equal at $2,000, with a loss-versus-holding of $0.
Original LP Position:
1 ETH $1,000 USDC
Total value: $2,000LP Position After Price Move:
0.71 ETH $1,414 USDC
Total value: $2,828LP Position After Price Reversion:
1 ETH $1,000 USDC
Total value: $2,000Holding Position: 1 ETH $1,000 USDC
Total value: $2,000
But what about the loss-versus-rebalancing?
When compared to a rebalancing portfolio executed on a liquid exchange such as Binance, our LP and holding portfolios underperform — even in the case where prices return to their original value.
The rebalancing portfolio starts at the same 1 ETH and 1,000 USDC. When the price of ETH goes to $2,000, we copy the LP trade (selling 0.29 ETH), but we do so at the current market price of $2,000 through a liquid non-AMM exchange, earning $580 for the trade instead of the $414 we got on the AMM, for a net LVR of $166. Copying the same trade on the way down, we buy back our 0.29 ETH for $290, instead of the $414 we would have to pay through the AMM, netting another $124 in LVR.
Original Rebalancing Portfolio Position:
1 ETH $1,000 USDC
Total value: $2,000Rebalancing Portfolio Position After Price Move:
0.71 ETH $1,580 USDC
Total value: $3,160Rebalancing Portfolio Position After Price Reversion:
1 ETH $1,290 USDC
Total value: $2,290
So the performance of our three portfolios (ignoring LP fees) looks like this:
The LVR math
For any given price movement, LVR can be calculated using the formula “a(p-q)” where a is the quantity of the asset being sold, p is the “real” market price, and q is the “stale” AMM price. (Note: “a” is a positive number when selling and a negative number when buying.)
Unlike impermanent loss, LVR depends on price trajectory and volatility. This intuitively makes sense… the more price moves there are, the more opportunities for arbitrage. The volatility of a given market can be derived using the famous “Black-Scholes” options-pricing model, and is represented by σ — a lowercase sigma.
For CF-AMMs, instantaneous LVR can be calculated as σ²/8. There are also more complex LVR formulas which sum instantaneous LVR to find the overall LVR of any given AMM. Find these formulas, along with a technical explanation of how the numbers were derived, in this video and this blog post by Anthony Lee Zhang, a co-author of the original LVR paper.
LP Returns in Practice
So far, we have the concept of LVR but we’ve ignored one very important factor: LP fees. After all, LPs don’t deposit money into AMMs out of charity, they do it to earn yield.
Now that we have a reliable formula for calculating loss-versus-rebalancing, we can look at historical data to answer the question “How often do LP returns exceed LVR losses?”
Using the LVR formula, the authors of the original paper concluded that, in an environment of 5% asset volatility, a Uniswap pool would need to turnover 10% of its entire volume each day in order for LP fees of 30 basis points to offset LVR losses.
However, we can get even more specific by retroactively looking at historical data. DeFi researcher Atis Elsts, wrote up a retrospective of 2023 LP returns that shows real data on loss-versus-holding and loss-versus-rebalancing for ETH throughout the year.
2023 Loss-Versus-Holding
ETH began the year at around $1,200 and closed around $2,300. LPs outperformed a holding portfolio of 50/50 ETH/USDC by an aggregate 1–2% after fees.
Images: 2023 LP versus holding strategies & 2023 LP PnL over holding strategy
2023 Loss-Versus-Rebalancing
Mapped alongside volatility, we can see that, as expected, loss-versus-rebalancing is highly correlated.
Elsts mapped LVR (red line) versus expected fees on WETH/USDC Uniswap v2 positions and WETH/USDC v3 positions across three fee tiers. We can see that v3 LP positions closely tracked LVR, while v2 positions largely outperformed it.
According to Elsts, the reason for the large discrepancy between v3 and v2 positions is that v2 sees primarily “core” (non-arbitrage) trading volume while a majority of v3 trading volume is arbitrage.
Images: Uniswap v2 volume makeup & Uniswap v3 volume makeup
So here we finally get to the $500 million question: How can LPs protect themselves from LVR?
Solutions to LVR
There are multiple proposed solutions to the LVR problem, each with its own set of tradeoffs.
Oracle designs: One of the most popular suggestions for solving the LVR problem involves using price oracles to feed AMMs the most up-to-date prices for assets. The oracle model is well-tested in DeFi, but an oracle-informed AMM would require significant design changes to current AMM models and introduce new problems around ensuring that the oracle always provides the most current price data.
Decreasing block times: Some proposals argue that increasing trade frequency by decreasing block times will result in even more granular arbitrage opportunities. This would theoretically increase the number of trades that arbitrageurs have to make, with the larger LP returns hopefully outpacing LVR.
Batch auction designs: While decreasing block times might mitigate the price lag AMMs experience, going in the opposite direction sounds even more promising. First proposed by Andrea Canidio and Robin Fritsch in the paper “Arbitrageurs’ profits, LVR, and sandwich attacks: batch trading as an AMM design response,” a new category of “Function-Maximizing” AMMs forces traders to trade against AMMs in batches, creating a competition between arbitrageurs which eliminates LVR.
CoW AMM
The CoW AMM is the first production-ready implementation of an FM-AMM and it’s designed to capture LVR on behalf of LPs.
Backtesting research conducted for a 6 month period during 2023 shows that CoW AMM returns would have equaled or outperformed CF-AMM returns for 10 of the 11 most liquid, non-stablecoin pairs.
The CoW AMM works by having solvers compete with each other for the right to trade against the AMM.
Whenever there is an arbitrage opportunity solvers bid to rebalance the CoW AMM pools. The winning solver is the one that moves the AMM curve higher.
Learn more about the CoW AMM here, and contact us if you are interested in setting up a liquidity pool.