Surplus-Capturing AMM Study Results

Summary

We provide an initial feasibility study for a class of “surplus capturing” AMMs, dubbed Feedlot, that derive their pricing from the uniform clearing price (UCP) of the CoW batch auction. This work is the outcome of a grant funded by CoW DAO. The full report can be found here.

The goal of our design is to offer automated liquidity while protecting LPs from the adverse selection inherent in standard CFMM designs (like Uniswap). Such designs theoretically eliminate loss-versus-rebalancing (LVR), and hence allow better control of the redistribution of trading surplus between traders and LPs, taking the driver’s seat back from arbitraging MEV bots.

In the report, we review general security principles for CFMM design, trading on a price oracle, and batch auctions. We discuss the economic implications for traders and liquidity pool providers and support the discussion with the results of empirical studies.

Findings

Security

  • A pool that trades at the oracle price is vulnerable to oracle manipulation attacks. In the case of Feedlot, manipulating the oracle is as simple as providing liquidity to the CoW solver at the price one wishes the oracle to spit out. We describe several different security scenarios under which such attacks are possible.
  • We introduce an informal notion of manipulation resistance, which is a necessary economic security requirement for a Feedlot pool to be an attractive investment for LPs. We find that volume controls, normalised in terms of the volume on CoW, are needed for manipulation resistance.

CoW UCP as an oracle

  • We found that the CoW UCP historically has performed very well as a price oracle (on the high volume pair WETH/USDC) in the sense that it tracks the Chainlink price much more closely than Uniswap v3 spot prices. Moreover, over many periods the CoW UCP updated more frequently than the Chainlink feed.

    In particular, traders get very tight spreads on CoW compared with Uniswap v3.

Feedlot LP yield

  • We simulated LP portfolio returns for a simple Feedlot AMM implementation using passthrough pricing with on-chain univ3 historical orderflow data. The Feedlot pool, lacking the portfolio control properties of a CFMM, is unstable, highlighting the need for a pricing curve to make an oracle pool interesting for LPs.

Further Research

  • Develop precise quantitative models to estimate the cost and marginal proceeds of manipulation (and hence manipulation resistance) when prices are sourced from a controlled selection of venues.
  • Study ways to control solver incentives through adjusting rewards and the batch auction objective function.
  • Investigate extensions of the UCP oracle approach to other applications of price oracles such as collateral liquidations and options.
2 Likes

A very thorough report. Well done. I welcome further research in ways to control solver incentives through adjusting rewards and the batch auction objective functions.

We reviewed the report internally here at CoW Protocol and would like to put forward some feedback.

To start, it is hard to overstate the importance of the problem addressed. A large fraction of decentralized finance relies, directly or indirectly, on liquidity pools. Yet, liquidity providers are often poorly remunerated. A key challenge in building a stronger defi stack is, therefore, finding ways to appropriately reward liquidity provision.

This report takes on this challenge. It clearly and concisely explains the issue with the current model of liquidity provision in terms of adverse selections: liquidity providers trade against agents (arbitrageurs, speculators) who are better informed about the value of the underlying assets, and hence are often on the “bad side” of the trade. The authors also very competently explain how it is possible to overcome this problem by integrating a price oracle in an AMM trading function. They then discuss how this price oracle could be CoW Swap uniform price vector (i.e., the vector of prices at which tokens are bought and sold in each CoW Swap batch). They conclude with an interesting empirical exercise quantifying the benefit of this new scheme for liquidity providers.

We are grateful to the authors for their work. As mentioned, it takes on a crucial topic relevant to the entire DeFi ecosystem. It also illustrates that the prices generated within each CoW Swap batch are a “public good” that can be used in other settings. Naturally, however, it leaves certain issues open to further research, which we want to highlight here to stimulate this debate.

One important point, which is mentioned in the report but requires further discussion, is that CoW Swap uniform price vector is realizable, but it may be biased. The reason is that Cow Swap will look for the best deal for its users. So, for example, if in a given batch, many users want to purchase ETH, then among the many realizable prices, CoW Swap will return the one with the lowest price for ETH. If, instead, most users want to sell ETH, CoW Swap will return the highest realizable price for ETH. On average, the Cow Swap prices may be close to that of an oracle (say, Chainlink). But in each batch, they diverge in a way that depends on the trades that need to be executed. We believe this is an important point to keep in mind whenever using CoW Swap prices instead of a traditional oracle price: the oracle price may be “unbiased” but perhaps unrealizable, while CoW Swap prices are realizable but usually biased.

Finally, several strategic considerations exist around if and how solvers can access feedlot (i.e., the AMM using CoW Swap prices). The issue is that solvers are the ones who ultimately establish CoW Swap prices, which may imply that solvers can name the price at which they can trade on feedlot. The authors acknowledge this issue and propose to address it by changing the solvers’ objective function but never specify exactly how.

To summarize: this research discusses a very important topic in a concise and clear way. Naturally, it leaves some issues open, which we hope the research community will build on.

3 Likes

Thanks for your thoughtful comments on our work.

The bias point is an interesting one. While our simple empirical study suggests that this effect is relatively small on CoW (when measured as a percentage deviation from Chainlink price feeds), of course it would be better if we could somehow understand and account for the bias (a.k.a. price impact) caused by local order flow imbalance when analysing the CoW UCP as a price signal.

This relationship has been studied in the market microstructure literature in the context of traditional continuous double auctions (LOBs) — I wonder if that work can be usefully adapted to the batch auction context?

As for the question of adjusting the solver objective function: evidently this is a fundamental issue and any changes could impact every part of the CoW ecosystem.

For example, currently CoW protocol can settle unbalanced batches of only market orders (or limit orders with very wide limits) at reasonable prices because the solver competition ensures that the trader will still get the best price anyone can afford to meet. This logic doesn’t apply when the batch is dominated by CoWs, but my understanding is that such batches are currently rare.

If the solver objective function were adjusted to give weight to utility of LPs in some preferred pool against which otherwise unbalanced batches are settled, this would no longer be possible: from the perspective of the objective function, every batch would be a CoW and the positioning of both trader and LP preferences becomes material.

We didn’t get into details on this in the report because we didn’t want to do the subject an injustice by proposing solutions without the proper accompanying analysis. IMO this question deserves its own study/studies!

1 Like

Our initial study only focused on the most liquid pair ETH/USDC. Perhaps for more illiquid tokens that do not have a chainlink oracle, the bias would be more pronounced. I also suspect that the more illiquid tokens in a batch, there will be more volatility in the asymmetry of slippage as discussed in CIP-17 here.

However, it’s not clear to me how well the initial study results will hold when considering the gamut of liquidity in on-chain tokens and whether this is something that should be embraced or discouraged. Does COW want users to trade tokens like PEPE through the original Uniswap pool or through COW? I would argue the answer is yes because illiquid tokens leak a disproportionate amount of MEV compared to more liquid tokens.

What is the strategic relationship between solvers and LPs? From my perspective, solvers are a type of market maker, providing orderflow to LPs at the LP spot price while returning a different price to traders that can deviate from the LP spot price. Currently solvers aim to provide the ‘best’ directional prices to traders to buy low and sell high.

Maybe if solvers compete with each other as LPs on price/volume execution, this could create a sufficient check and balance. Thus if a solver tries to offer a manipulative price to traders, then another solver can offer a less manipulative price to traders and win the auction. The conjecture is that solver LP competition would drive the manipulation incentive to zero.