1. Introduction

In this document, we will address the topic of designing the payout scheme for the solvers that are participating in the CoW Protocol Solver Competition. The inspiration of all ideas proposed here is drawn from the field of Auction Design.

As of now, solvers compete with respect to the following objective function:

$\textrm{total users surplus} \;+\; \textrm{fees collected} \;-\; \textrm{total gas cost}.$

Currently, solvers get reimbursed fully for all the gas spent for successful settlements, and also get an additional COW reward based on the orders that they execute in the batch. More precisely, each order has a predetermined COW reward, that aims to describe how risky an order is; the riskier the order (e.g., complicated execution path), the higher the reward. Finally, solvers do not get reimbursed for any reverted transactions.

Regarding slippage, solvers are responsible for it, and the protocol does an accounting each week. Net negative slippage is being deducted from the solver gas reimbursements, while net positive slippage is NOT (currently) returned to the solvers; instead, the protocol pockets it.

In this document, we explore alternatives to the above mechanism, that are much more dynamic and sensitive to network conditions. Moreover, they are well suited for a more decentralized stage of the competition.

Organization of material. We start with some definitions in Section 2, and then proceed to describe a pure first-price auction model in Section 3. After covering some issues arising from this model, we describe a slight modification of it in Section 4, which should be viewed as the main running proposal of this document. Finally, in Section 5, we explore some alternatives. The Appendix also contains some proofs and observations.

2. Preliminaries

Here, we define some terminology. We will use the term quality of a solution to define how the protocol values a solution. The quality function currently being used is

$\textrm{quality}(s) = \textrm{surplus generated by }s \;+\; \textrm{fees collected by s}.$

The quality of a solution s, along with its cost, is what determines the objective function currently used today, as follows:

$\textrm{obj}(s) = \textrm{quality}(s) - \textrm{cost}(s).$

3. A pure first-price auction

The starting point is that solvers can now incorporate their risk assessment of the solutions they are constructing, as well as information about the minimum rewards they would want if they were to win. In particular, the mechanism can be concisely described as follows.

3.1 A pure first-price auction mechanism

  1. Each solver reports a single value, denominated in ETH, which we call the score of the solver.

  2. When the auction ends, all scores are ranked in decreasing order, and the solver with the highest score is declared the winner. Let $\overline{\textrm{score}}$ denote the winning score.

  3. The winner gets the right to execute their solution onchain.

  4. The protocol observes the execution, and the reward the solver is entitled to is computed as follows:

    $\textrm{reward} = \textrm{observed quality} - \overline{\textrm{score}}.$