Celo Reserve Liquidation Mechanism

Hi folks, following up on this post with some specific ideas around how liquidations could be done. Ideally, I would think we want:

  • A quick liquidation mechanism (ideally within seconds, if not minutes). The quicker liquidations can be done, the smaller the risk of the reserve getting under-collateralised because of a step jump in reserve asset prices.
  • Market depth during liquidations - to reduce slippage.
  • A decentralised mechanism, if possible (challenging to implement for non-CELO reserve assets).
  • Consideration of gas fees. In the case of a crypto price crash, it’s possible that gas fees rise (transaction fees on Bitcoin, gas on Ethereum). This should be factored in.

Liquidation of BTC/ETH via a CEX
Idea: Somehow the reserve would have to hold an account at a CEX like Kraken that allows trading of BTC/ETH for cStables.
Speed: Fast.
Risks: Centralised.
Overall feasibility: This method would be quick, but requires a centralised approach that would have to be managed via a multi-sig. [Side-note: as I understand, reserve BTC and ETH holdings are currently centrally controlled, not controlled by reserve smart contracts.]

Liquidation of BTC/ETH as cBTC/cETH
Speed: Slow

  • cBTC could start to unpeg from BTC as liquidation starts.
  • cBTC is centralised, as I understand and also slow to unwrap =>

Liquidation of BTC/ETH as wBTC(optics) / wETH(optics)
Speed: ~10 mins with optics v2.

  • wBTC is custodial and unwrapping is slow
  • the optics bridged tokens could start to unpeg from their underlying equivalents during a rapid fall in prices. Still, optics v2 settles a lot quicker than other bridges, so this depeg might stay fairly small.
  • the reserve takes on optics bridging risk

Liquidation of BTC via submarine swaps
This doesn’t exist today, but there is a project in the mobile hackathon to build a submarine swap solution to go from Bitcoin Lightning to CELO. You can read about Bitcoin Lightning to Bitcoin submarine swaps here. In theory, this could be built out for going from BTC to cStables or ETH to cStables. A further implementation could involve Uniswap v2 style pools based on submarine swaps - this would be totally experimental (and I’m sure there are holes in this that I don’t understand). [EDIT 14Dec2021]: This is likely difficult to do in pooled way due to the hot/live nature of Bitcoin Lightning nodes/wallets.]

Speed: Submarine swaps are quick and decentralised (although they do require liquidity providers).

  • Swap liquidity may dry up in a price crash.
  • This doesn’t even exist right now as an architecture.

Overall remarks and recommendations

  • The options above are highly imperfect. The simplest option I see is to implement a liquidation mechanism solely based on optics bridged Ether tokens in the Celo reserve.
  • We should research what other protocols like Avalance, Near, Solana etc. are doing on this front. I haven’t read anything on them yet.
  • We should tag people here in the Celo community that would have better ideas.

@thezviad , @bvl , @Markus what are your ideas?