feat: Implement a facade contract that verifies a signature before calling settle #84
Labels
E:7.1 Ext. solvers operating driver
See https://github.com/cowprotocol/pm/issues/57 for details
Problem
Solvers can theoretically submit solutions outside of the competition (simply calling
settle
with a bunch of signed orders). The way this is prevented is by requiring large bonds being put up by solvers in order to get allow listed. Those bonds pose a barrier to entry for the protocol. In the current state, they cannot be easily reduced without adding additional risk to the system.The potential damage can be broadly differentiated into two parts
While 1. is fairly contained and can be mitigated by frequently withdrawing internal buffers, 2. poses a much bigger risk to the protocol and is the main reason high bonds are required.
Suggested solution
Have the off-chain auction provide a signature attesting that a specific solver has indeed won the settlement they are trying to settle. The signature would attest to the following things:
We would then have an intermediary contract intercept a solver's settle call, verify that their solution is indeed in line with the attestation committed to by the auctioneer and in this case forward the settle call to the main settlement contract. The intermediary contract would be associated with a full bond and allow-listed in the main settlement contract. Solvers would still require to post some amount of bond (cf. risk 1 above), but the bond could be significantly smaller and in a separate allow-list. in the future there could be many such intermediary contracts (one per bonding pool).
This would allow smaller capitalised solvers participate in the auction.
Acceptance Criteria
The text was updated successfully, but these errors were encountered: