This article presents results comparing liquidity provisioning strategies using canonical constant product and concentrated liquidity portfolios, and an asymmetric liquidity portfolio. The simulations cover the period from May 15, 2022, to May 15, 2023, and evaluate the performance of each strategy using specific parameters.
The simulated results utilize an opening price of 2,053.22 USDC per ETH and a closing price of 1,828.89 USDC per ETH. A swap fee of 22.228 bps is applied consistently across all three protocols. The initial compositions and end compositions of the liquidity portfolios are provided, along with the improvements achieved compared to the respective HODL numeraires.
The constant product liquidity portfolio begins with a composition of 2.43520 ETH and 5,000.00 USDC, equivalent to 10,000 USDC in value. At the end of the simulation, the portfolio composition consists of 2.62032 ETH and 4,781.63 USDC, reflecting a 1.27150% improvement.
The concentrated liquidity portfolio, with a price range of 1203.43–1996.71 USDC per ETH, starts with a composition of 10,000 USDC. It concludes with a composition of 1.03087 ETH and 8,032.24 USDC, exhibiting an improvement of 9.11913%.
The asymmetric liquidity portfolio, featuring an asking price range of 1593.97–1996.71 USDC per ETH and a bidding price range of 1593.97–1203.43 USDC per ETH, starts with a composition of 10,000 USDC. The simulation shows that the portfolio composition at the end consists solely of 17,649.9 USDC, indicating a significant improvement of 76.4993%.
In this post, I explore a heads-up comparison of the ETH/USDC pair across the two prototypical liquidity protocols offered by Uniswap (V2 and V3), and the new asymmetric liquidity protocol from Bancor (Carbon).
ETH/USDC May 15, 2022-May 15, 2023
Backtesting this price chart on a constant product protocol involves no decision making, save for the starting portfolio value. This is because the composition is fixed at a 50:50 value split between ETH and USDC, at the time the simulation begins. Here, all three simulations begin with a total portfolio value of $10,000; the opening price of ETH is $2053.22, which forces a starting composition of 2.4352 ETH and 5000 USDC.
Backtesting a concentrated liquidity portfolio is slightly more complex, as the range bounds must be determined. In this case, keeping both bounds beneath the opening price of the simulation allows the starting portfolio to be composed entirely in USDC. For this simulation, I chose to set my range from $1203.43–1996.71. As the graphic shows, there is a lot of activity in this range and both ETH and USDC are high-volume tokens. This is an important consideration. High volume pairs are more likely to be efficiently arbitraged and find spot trades (either directly or indirectly) at the price quoted by the API from which the historical data was sourced (CryptoCompare in this case), and validates some of the underlying assumptions behind the simulation.
Backtesting the asymmetric liquidity case (i.e. Carbon) is more flexible. To keep some amount of consistency, the upper-most and lower-most bounds of the asymmetric portfolio ranges have been kept consistent with the concentrated liquidity example, and the initial bid & ask prices are set near the center. Therefore, my buy range is set from $1593.97 down to $1203.43, and my sell range is set from $1593.97 up to $1996.71.
There is no consensus on fees across the industry; Carbon uses 20 bps, Uniswap V3 can be as high as 30 bps and as low as 5 bps. Uniswap V2 is 30 bps. This simulation runs 22.228 bps on all three protocols. The simulator allows for fee adjustments between 0.1 bps and 100 bps (log scale), and is applied to all the protocols equally. Since the simulator uses fee-adjusted rates to perform arbitrage, the changes in effective volumes are also appropriately handled.
It is important to note that the fee setting affects these three protocols slightly differently. The fee results in an effective bid/ask spread on constant product and concentrated liquidity protocols, and forms the basis for profit generation. However, since Carbon’s ranges are irreversible, the spread is dynamic. The farther the price action moves into either range, the greater the effective spread and implied profits. Therefore, the fee setting has a large impact on the latter two, and not much impact on Carbon, in terms of portfolio performance.
Results
Constant Product Portfolio vs HODL: +1.27%
Concentrated Liquidity Portfolio vs HODL: +9.12% (~7.18x better than constant product!)
Carbon’s Asymmetric Liquidity Portfolio vs HODL: +76.50% (~60.24x better than constant product and ~8.39x better than concentrated liquidity!)
First let’s look at the result on a standard constant product AMM, and how to interpret the chart. The green and red shaded areas indicate the price points where USDC and ETH liquidity is available, respectively. For a constant product protocol, these are boundless. As the market price moves, the simulation assumes that efficient arbitrage occurs, and the liquidity is redistributed as a result. The edge of these shaded areas, either side of the market price, are the effective bids and asks. These traces obscure a white trace, which represents the ETH price. The bids, asks, and ETH price traces are all read from the y-axis on the left-hand-side of the chart.
The traces to watch are the portfolio and HODL values, represented by blue and gold lines. Whenever the blue line is beneath the gold line, the portfolio is in a state of “impermanent loss”; conversely, whenever the blue line is above the gold line, the portfolio could be said to be in a state of “impermanent gains”. The broken orange line depicts the USDC balance of the position, and due to the nature of constant product portfolios, will always represent exactly half of the portfolio value. The portfolio and HODL valuations, and the USDC portion of the position, are all read from the y-axis on the right-hand-side of the chart.
The choice of using the HODL position as the numeraire is generally accepted as the appropriate measure, as it provides an unambiguous point of reference. The measurement compares the portfolio values of the user *doing nothing* (i.e. holding the tokens in their wallet) versus the act of interacting with their chosen liquidity protocol.
Now let’s examine the concentrated liquidity chart. The features are the same as described above for the constant product case; however, the green and red shaded regions are bounded. The most important outcome from the bounded liquidity ranges is that the liquidity composition can be denominated entirely in ETH if its price capitulates below the lower bound (e.g. 2022–07), or entirely in USDC if the ETH price rallies above the upper bound (e.g. 2022–05).
The orange broken line deserves special attention in the concentrated liquidity plot. The fee handling on prototypical concentrated liquidity protocols (e.g. Unsiwap V3) is to separate the fee from the liquidity, and users claim it from a dedicated vault. Therefore, while the liquidity can be composed entirely of USDC or ETH, the portfolio composition is seldom so one-sided. This explains the feature between 2022–11 and 2023–01, where the orange broken line does not quite reach zero, owing to the portfolio remaining partly composed of USDC, still available to claim from the vault. Similarly, when the ETH price moves above bounds around 2023–04, the liquidity composition moves entirely into USDC, but does not quite reach the portfolio value. Again, this is due to the ETH fees balance available to withdraw from the vault.
Here the LP profits versus HODL are ~9.12% over 12 months, and about 7.18× better than the constant product portfolio. This is not a surprising result. The concentration of Uniswap V3 liquidity is akin to a leverage — so long as the position remains in range, the fee accrual is accelerated.
Now let’s examine the asymmetric liquidity chart. One standout feature compared to the previous two plots is the gray shaded region, bordered by green and red broken lines. The gray shaded areas represent the price point where liquidity can exist, but doesn’t at that point in time. This is a result of the irreversible nature of Carbon’s trading activity. For example, consider the first leg of the simulation, where the sell range is completely grayed out. Close inspection of the chart reveals a red broken line at approximately the 1595 USDC per ETH price point, and indicates that as ETH liquidity accumulates to the position, its price can fill up to this point but no further. Similarly, as the USDC liquidity recedes from this point, a green broken line is exposed, and marks the maximum bid price this strategy will offer — regardless of how much USDC is accumulated. This behavior stands in contradistinction to that described for the concentrated liquidity case, where the bid and ask prices can occur at any point inside the bounded range.
Another important difference is the relatively quiet USDC portion trace. Unlike the prior examples, small changes in the market conditions does not necessarily result in an arbitrage opportunity. Instead, the strategy holds onto its liquidity and waits for the market to take an interest in the quoted price. This is one of Carbon’s defining characteristics, and makes its classification as an AMM contentious.
Here the profits are ~76.50% versus HODL over 12 months (approximately 60.24× improvement over the Uniswap V2 strategy and a ~8.39× improvement over Uniswap V3). Again, this result is not too surprising, albeit impressive. The separation of the buy and sell ranges on Carbon results in a higher spread than the one achieved by swap fees on the other protocols.